- 1 1. ما هو JSON؟
- 2 2. الطرق الأساسية لقراءة ملفات JSON باستخدام بايثون
- 3 3. كيفية قراءة سلاسل JSON باستخدام بايثون
- 4 4. نقاط يجب الانتباه إليها وإجراءات التعامل مع الأخطاء عند قراءة ملفات JSON
- 5 5. المعالجة الفعالة لبيانات JSON الكبيرة
- 6 6. كيفية استخدام بيانات JSON بعد تحويلها إلى قاموس بايثون
- 7 7. شرح طريقة كتابة JSON في بايثون أيضًا
1. ما هو JSON؟
نظرة عامة على JSON
JSON (JavaScript Object Notation) هو تنسيق خفيف الوزن وفعال للغاية لتبادل البيانات. يُستخدم بشكل أساسي لتبادل البيانات بين تطبيقات الويب والخوادم. على الرغم من أنه يعتمد على JavaScript، إلا أنه مدعوم في جميع لغات البرمجة تقريبًا. يلعب JSON دورًا مهمًا للغاية، خاصة في الحصول على البيانات وإرسالها باستخدام واجهات برمجة التطبيقات (API).
هيكل JSON
يتكون JSON من أزواج المفتاح والقيمة، وتكون البيانات محاطة بأقواس متعرجة {}
. كمثال بسيط، تخيل البيانات التالية:
{
"name": "John",
"age": 30,
"isStudent": false,
"courses": ["Math", "Physics", "Chemistry"]
}
يمكن أن يتضمن هذا الهيكل قوائم وكائنات متداخلة، مما يجعله مرنًا للغاية.
2. الطرق الأساسية لقراءة ملفات JSON باستخدام بايثون
إدراج مكتبة json
في بايثون
في بايثون، يمكنك بسهولة التعامل مع ملفات JSON باستخدام مكتبة json
القياسية. لا يلزم تثبيت إضافي، وتتوفر الوظائف الأساسية المتعلقة بقراءة الملفات وكتابتها بشكل افتراضي.
كيفية قراءة ملفات JSON
سنشرح كيفية قراءة البيانات من ملف باستخدام دالة json.load()
. يوضح المثال التالي رمزًا بسيطًا لقراءة JSON من ملف ومعالجة البيانات كقاموس.
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
3. كيفية قراءة سلاسل JSON باستخدام بايثون
استخدام دالة json.loads()
عند تحويل بيانات JSON المعطاة كسلسلة إلى قاموس بايثون، نستخدم دالة json.loads()
. تُستخدم هذه الدالة بشكل متكرر عند معالجة سلاسل JSON في استجابات واجهة برمجة التطبيقات (API) وما شابه.
import json
json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)
print(data)
بهذه الطريقة، يمكنك بسهولة تحويل بيانات JSON كسلسلة إلى قاموس.
4. نقاط يجب الانتباه إليها وإجراءات التعامل مع الأخطاء عند قراءة ملفات JSON
الأخطاء الشائعة وحلولها
عند قراءة ملفات JSON، أحد أكثر الأخطاء شيوعًا هو JSONDecodeError. يحدث هذا الخطأ عندما لا يكون الملف بتنسيق JSON صحيح. من المهم التعامل مع الأخطاء بشكل صحيح والتحقق من تفاصيل الخطأ.
import json
try:
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
except json.JSONDecodeError as e:
print(f"خطأ في قراءة JSON: {e}")
مشاكل الترميز (Encoding)
في ملفات JSON التي تحتوي على اللغة اليابانية، يجب الانتباه إلى ترميز الأحرف. سيؤدي تحديد encoding='utf-8'
إلى منع تشوه الأحرف.
5. المعالجة الفعالة لبيانات JSON الكبيرة
معالجة البيانات مع مراعاة كفاءة الذاكرة
إذا قمت بتحميل ملف JSON ضخم إلى الذاكرة دفعة واحدة، فقد تواجه نقصًا في الذاكرة. لتجنب ذلك، يوصى باستخدام مكتبات التدفق مثل ijson
.
import ijson
with open('large_file.json', 'r', encoding='utf-8') as f:
for item in ijson.items(f, 'item'):
print(item)
باستخدام ijson
، يمكنك معالجة البيانات الكبيرة بكفاءة.
6. كيفية استخدام بيانات JSON بعد تحويلها إلى قاموس بايثون
عمليات القاموس الأساسية
يصبح التعامل مع البيانات سهلاً للغاية عن طريق تحويل JSON إلى نوع قاموس. على سبيل المثال، يمكنك الحصول على القيم المقابلة لمفتاح معين أو تعديل البيانات.
# أمثلة على عمليات بيانات القاموس
print(data['name']) # سيتم عرض 'Alice'
data['age'] = 26 # تحديث القيمة
data['email'] = 'alice@example.com' # إضافة مفتاح وقيمة جديدين
7. شرح طريقة كتابة JSON في بايثون أيضًا
الكتابة إلى ملف JSON
لكتابة بيانات القاموس التي تم التعامل معها في بايثون إلى ملف بتنسيق JSON، استخدم دالة json.dump()
. يتيح لك هذا حفظ البيانات المحدثة.
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
يقوم الخيار indent=4
بتنسيق الإخراج، ويقوم ensure_ascii=False
بحفظ اللغة اليابانية كما هي.