• 0

كيف أكتب بيانات JSON في ملف عن طريق بايثون؟

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

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

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

TypeError: must be string or buffer, not dict

فما الحل؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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)

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن