ahmed1990 نشر 26 أكتوبر 2015 أرسل تقرير نشر 26 أكتوبر 2015 لدي مجموعة من بيانات JSON مُخزنة في متغير data، وأريد أن أكتب هذه البيانات في ملف، فجربتُ هذه الطريقة:obj = open('data.txt', 'wb') obj.write(data) obj.close فحصلتُ على هذا الخطأ:TypeError: must be string or buffer, not dict فما الحل؟ اقتباس
0 هشام رزق الله نشر 26 أكتوبر 2015 أرسل تقرير نشر 26 أكتوبر 2015 في جزء JSON، متغير data هو عبارة عن قاموس ولم يتم ترميزه كبيانات JSON مما تسبب في ظهور رسالة الخطأ، وهنالك حلين لهذه المشكلة حسب إصدار بايثون المثبت على جهازك، فإذا كنت تستخدم الإصدار الثاني من بايثون فسنقوم باستخدام ترميز utf-8 بالإضافة إلى المكتبتين json وio كما في المثال التالي:import io, json with io.open('data.txt', 'w', encoding='utf-8') as f: f.write(unicode(json.dumps(data, ensure_ascii=False))) أما لو كنت تستخدم الإصدار الجديد من بايثون (الإصدار الثالث) فسيكون الأمر أسهل، فلن نستخدم سوى دالة dump من مكتبة json مع الدالة المدمجة open كما في المثال التالي:import json with open('data.txt', 'w') as f: json.dump(data, f, ensure_ascii=False) المصدر اقتباس
السؤال
ahmed1990
لدي مجموعة من بيانات JSON مُخزنة في متغير data، وأريد أن أكتب هذه البيانات في ملف، فجربتُ هذه الطريقة:
فحصلتُ على هذا الخطأ:
فما الحل؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.