تحليل JSON في Python: دليل شامل للمبتدئين والمحترفين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو JSON ولماذا نحتاج إلى تحليله؟

JSON (JavaScript Object Notation) هو تنسيق نصي خفيف لتبادل البيانات، أصبح المعيار الأساسي لنقل المعلومات بين التطبيقات. على الرغم من اسمه، فإن JSON لا يعتمد على JavaScript ويُستخدم بنشاط في جميع لغات البرمجة الحديثة.

المزايا الرئيسية لـ JSON:

  • تنسيق قابل للقراءة البشرية
  • هيكل بيانات بسيط
  • دعم عالمي
  • حجم مضغوط مقارنة بـ XML

مثال على كائن JSON:

{
  "name": "أحمد",
  "age": 30,
  "is_active": true,
  "hobbies": ["القراءة", "ركوب الدراجات", "السفر"]
}

وحدة json المدمجة في Python

توفر Python وحدة مدمجة قوية json للتعامل مع بيانات JSON. تتيح هذه الوحدة إجراء عمليتين رئيسيتين:

  1. إلغاء التسلسل (Deserialization) — تحويل سلسلة JSON إلى كائنات Python
  2. التسلسل (Serialization) — تحويل كائنات Python إلى سلسلة JSON

لبدء العمل، نقوم باستيراد الوحدة:

import json

تحليل سلسلة JSON إلى كائنات Python

استخدام json.loads()

الدالة json.loads() (load string) تحول سلسلة JSON إلى كائن Python مطابق:

import json

json_data = '{"name": "خالد", "age": 25, "is_active": false}'
parsed_data = json.loads(json_data)

print(parsed_data)  # {'name': 'خالد', 'age': 25, 'is_active': False}
print(type(parsed_data))  # <class 'dict'>

بعد التحليل، يمكنك التعامل مع البيانات كقاموس عادي:

print(parsed_data['name'])  # خالد
print(parsed_data['age'])   # 25

تطابق أنواع البيانات

يتم تحويل أنواع JSON تلقائيًا إلى أنواع Python:

JSON Python
object dict
array list
string str
number int/float
true/false True/False
null None

تحويل كائنات Python إلى JSON

استخدام json.dumps()

الدالة json.dumps() تحول كائنات Python إلى سلسلة JSON:

data = {'name': 'سارة', 'age': 30, 'is_active': True}
json_string = json.dumps(data)
print(json_string)  # {"name": "سارة", "age": 30, "is_active": true}

معاملات التنسيق

لتحسين قابلية القراءة، استخدم المعاملات الإضافية:

data = {'name': 'سارة', 'age': 30, 'city': 'القاهرة'}
json_pretty = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)
print(json_pretty)

المعاملات الرئيسية:

  • indent — المسافات البادئة للتنسيق
  • sort_keys — ترتيب المفاتيح أبجديًا
  • ensure_ascii — دعم الأحرف Unicode

التعامل مع ملفات JSON

قراءة JSON من ملف

استخدم json.load() لقراءة بيانات JSON من ملف:

with open('data.json', 'r', encoding='utf-8') as file:
    content = json.load(file)
    print(content)

كتابة JSON إلى ملف

الدالة json.dump() تكتب البيانات إلى ملف:

data = {'city': 'الرياض', 'temperature': 35, 'weather': 'مشمس'}

with open('weather.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, indent=4, ensure_ascii=False)

نصائح للتعامل مع الملفات

  • حدد دائمًا الترميز (encoding) كـ utf-8 لدعم اللغة العربية
  • استخدم ensure_ascii=False للحفاظ على الأحرف العربية
  • أغلق الملفات تلقائيًا باستخدام with

المدونات

توصيات الكتب