عند محاولة معالجة البيانات من ملف 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