"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل "TypeError: يجب أن تكون مؤشرات السلسلة أعدادًا صحيحة" عند تحليل بيانات JSON؟

كيفية حل "TypeError: يجب أن تكون مؤشرات السلسلة أعدادًا صحيحة" عند تحليل بيانات JSON؟

تم النشر بتاريخ 2024-12-21
تصفح:134

How to Resolve

تجنب "TypeError: يجب أن تكون مؤشرات السلسلة أعدادًا صحيحة"

عند محاولة معالجة البيانات من ملف JSON إلى تنسيق CSV مفهوم، قد تواجه الخطأ "TypeError: يجب أن تكون مؤشرات السلسلة أعدادًا صحيحة" خطأ. ينشأ هذا الخطأ عند الوصول إلى حقول سلسلة كما لو كانت قاموسًا. دعونا نستكشف الحل.

فهم الخطأ

لفهم الخطأ، من المهم ملاحظة أنه لا يمكن فهرسة السلاسل النصية في بايثون مثل القواميس. في القواميس، يمكن الوصول إلى المفاتيح كسلاسل، على سبيل المثال، القاموس ["مفتاح"]. في المقابل، الوصول إلى حقول السلسلة يجب أن يتم باستخدام مؤشرات الأعداد الصحيحة، كما هو موضح في المثال التالي:

mystring = "helloworld"
print(mystring[0])  # Outputs 'h', as '0' refers to the first character

تطبيق الحل

في التعليمات البرمجية الخاصة بك، أنت تحاول الوصول إلى حقول العنصر المتغير، وهو من النوع سلسلة:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

لحل المشكلة، قم بتحويل متغير العنصر إلى قاموس قبل الوصول إلى حقوله:

csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])

بدلاً من ذلك، يمكنك استخدام وظيفة Loads() الخاصة بوحدة json لتحويل العنصر سلسلة مباشرة إلى القاموس:

item_dict = json.loads(item)
csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])

ستضمن هذه التعديلات وصولك إلى الحقول باستخدام الفهارس الصحيحة، وحل خطأ "TypeError: يجب أن تكون مؤشرات السلسلة أعدادًا صحيحة".

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3