اذهب إلى المحتوى

السؤال

نشر

لدي مجموعة من بيانات JSON مُخزنة في متغير data، وأريد أن أكتب هذه البيانات في ملف، فجربتُ هذه الطريقة:

obj = open('data.txt', 'wb')
obj.write(data)
obj.close

فحصلتُ على هذا الخطأ:

TypeError: must be string or buffer, not dict

فما الحل؟

Recommended Posts

  • 0
نشر

في جزء 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)

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...