البرمجة

حل مشكلة فهرس القائمة في API خرائط Google.

الخطأ الذي تواجهه يحدث عندما تحاول الوصول إلى قائمة (list) باستخدام مفتاح (key) من نوع نصي (string) بدلاً من استخدام فهرس (index) من نوع عددي (integer). في السطر:

python
for step in direction['Direction']['Routes'][0]['Steps']:

يجب أن تحل محل ['Steps'] بفهرس عددي يشير إلى الموقع الصحيح في القائمة. للتأكد من الهيكل الداخلي للكائن الذي تمت الإشارة إليه، يمكنك استخدام دالة print() لطباعة الكائن direction بالكامل ومشاهدة الهيكل الداخلي له. قد يكون الهيكل الداخلي مختلفًا قليلاً حسب الإصدار الذي تعمل عليه.

على سبيل المثال، يمكنك تغيير السطر المذكور إلى:

python
for step in direction[0]['legs'][0]['steps']:

حيث أن direction[0]['legs'][0]['steps'] هو الهيكل المتوقع للقائمة التي تحتوي على الخطوات (steps) للمسار الذي تم العثور عليه بين نقطتي البداية والنهاية. تأكد من تغيير الكود بما يتناسب مع هيكل بيانات الاستجابة التي تتلقاها من API.

المزيد من المعلومات

بالتأكيد! عند استخدام API خرائط Google Distance Matrix، يمكنك الحصول على تفاصيل المسار بين نقطتين، مثل المسافة والزمن المتوقع للوصول، وتفاصيل الخطوات اللازمة للوصول من نقطة إلى أخرى.

في الكود الذي قمت بتقديمه، يمكنك تصحيح الخطأ الذي واجهته عن طريق استخدام الهيكل الصحيح للبيانات التي تتلقاها من API. إليك كيف يمكن تصحيح السطر المشكوك فيه:

python
for step in direction[0]['legs'][0]['steps']:

حيث أن direction[0]['legs'][0]['steps'] يمثل القائمة التي تحتوي على الخطوات للمسار الذي تم العثور عليه بين نقطتي البداية والنهاية.

تأكد أيضًا من استخدام الدوال والمتغيرات بشكل صحيح وفقًا لنمط البرمجة في Python، حيث أن الهوامش والمسافات قد تكون مهمة جدًا في هذه الحالة.

زر الذهاب إلى الأعلى