Python with JSON

كيف أتعامل مع JSON في Python؟

تُستخدم ملفات JSON (JavaScript Object Notation) بشكل واسع لتخزين البيانات ونقلها بين الأنظمة بفضل بساطتها وسهولة قراءتها. تُعتبر Python لغة ممتازة للتعامل مع JSON، حيث توفر مكتبة مدمجة لتحليل وإنشاء ملفات JSON بسهولة. في هذا المقال، سنشرح كيفية التعامل مع JSON في Python خطوة بخطوة، بما في ذلك كيفية قراءة وكتابة البيانات، وأمثلة عملية لتوضيح الاستخدامات المختلفة.


محتويات المقال

  1. مقدمة حول JSON في Python
  2. ما هو JSON ولماذا يُستخدم؟
  3. المكتبات والأدوات الأساسية للتعامل مع JSON
  4. قراءة بيانات JSON من ملف في Python
  5. تحويل بيانات Python إلى JSON وكتابتها في ملف
  6. التعامل مع JSON المتداخل (Nested JSON)
  7. الأسئلة الشائعة

1. مقدمة حول JSON في Python

تدعم Python التعامل مع ملفات JSON بشكل مباشر، حيث تأتي مكتبة json مدمجة في اللغة. هذه المكتبة توفر دوال لتحويل البيانات بين تنسيق JSON وبيانات Python (مثل القوائم والقواميس) بسهولة، مما يجعلها أداة قوية للتعامل مع البيانات المنظمة بشكل مباشر.

2. ما هو JSON ولماذا يُستخدم؟

JSON هو تنسيق بسيط يعتمد على النصوص، ويستخدم لتمثيل البيانات بشكل منظم وسهل القراءة. يتألف من أزواج المفتاح-القيمة، ويشبه في بنية بياناته القواميس في Python. يتم استخدام JSON بشكل شائع في تطبيقات الويب، حيث يُستخدم لتبادل البيانات بين العميل والخادم.


3. المكتبات والأدوات الأساسية للتعامل مع JSON

تقدم مكتبة json في Python عدة دوال للتعامل مع JSON، من بينها:

المكتبات والأدوات الأساسية للتعامل مع JSON

معلومة مفيدة: تتعامل مكتبة json بشكل أساسي مع القواميس والقوائم في Python، والتي تتطابق مع بنية JSON.

رابط توثيق مكتبة json في Python:


4. قراءة بيانات JSON من ملف في Python

يمكنك قراءة بيانات JSON من ملف وتحويلها إلى كائن Python بسهولة باستخدام json.load().

مثال: قراءة بيانات JSON من ملف

لنفترض أن لديك ملف JSON يحتوي على بيانات مثل:

{
    "name": "Ahmed",
    "age": 25,
    "city": "Riyadh"
}
Python

يمكنك قراءة هذا الملف باستخدام الكود التالي:

mport json

# فتح وقراءة ملف JSON
with open("data.json", "r") as file:
    data = json.load(file)

print(data)
Python

شرح الكود:

  1. فتح الملف: نفتح الملف باستخدام open() ونمرر له وضع القراءة “r”.
  2. قراءة JSON: نستخدم json.load() لتحميل البيانات وتحويلها إلى كائن Python (قاموس).

5. تحويل بيانات Python إلى JSON وكتابتها في ملف

بعد معالجة البيانات، قد تحتاج إلى تحويل كائن Python إلى JSON وكتابة هذه البيانات في ملف جديد.

مثال: كتابة بيانات Python إلى ملف JSON

data = {
    "name": "Sara",
    "age": 30,
    "city": "Jeddah"
}

# تحويل وكتابة البيانات إلى JSON
with open("output.json", "w") as file:
    json.dump(data, file, indent=4)
Python

تفسير الكود:

  • json.dump(): تقوم بتحويل كائن Python إلى تنسيق JSON وكتابته مباشرة في الملف.
  • indent=4: يضيف مسافة بين كل مستوى لجعل تنسيق JSON سهل القراءة.

نصيحة: يمكنك تخصيص مسافات التنسيق باستخدام معامل indent عند كتابة JSON، خاصةً إذا كنت ترغب في تنسيق البيانات لتحسين قراءتها.


6. التعامل مع JSON المتداخل (Nested JSON)

يمكن أن يحتوي JSON على بيانات متداخلة (مثل القوائم أو القواميس بداخل القواميس)، مما يتطلب معرفة كيفية الوصول إلى البيانات المعقدة.

مثال: الوصول إلى بيانات JSON متداخل

لنفترض أن لديك ملف JSON متداخل بالشكل التالي:

{
    "person": {
        "name": "Omar",
        "age": 28,
        "address": {
            "street": "Main St",
            "city": "Dammam",
            "postal_code": "34454"
        }
    }
}
Python

يمكنك الوصول إلى البيانات المتداخلة كالتالي:

with open("nested_data.json", "r") as file:
    data = json.load(file)

# الوصول إلى بيانات الشخص
print(data["person"]["name"])
print(data["person"]["address"]["city"])
Python

شرح الكود:

  • الوصول للبيانات: يمكنك استخدام سلسلة من المفاتيح للوصول إلى بيانات متداخلة داخل JSON.

7. تحويل بيانات JSON إلى نص (String) والعكس

يمكن تحويل بيانات JSON إلى نصوص باستخدام json.dumps() لتحويل البيانات إلى تنسيق JSON. وكذلك، يمكن تحويل النصوص إلى JSON باستخدام json.loads()، مما يتيح لك التعامل مع JSON مباشرة من النصوص بدلاً من الملفات.

مثال: تحويل بيانات JSON إلى نص والعكس

import json

# تحويل JSON إلى نص
data = {"name": "Ali", "age": 22}
json_str = json.dumps(data, indent=4)
print(json_str)

# تحويل نص JSON إلى كائن Python
json_data = json.loads(json_str)
print(json_data)
Python

8. التعامل مع JSON المعقد وتحسين الأداء

عند التعامل مع JSON كبير الحجم أو بيانات معقدة، يمكن أن تكون هناك حاجة لاستخدام مكتبات إضافية لتحسين الأداء مثل ujson أو orjson، اللتين توفران سرعة أفضل عند التعامل مع بيانات JSON كبيرة.

روابط توثيق:

9. نصائح إضافية عند التعامل مع JSON

  • التحقق من الأخطاء: استخدم try-except للتحقق من الأخطاء المحتملة عند قراءة أو تحويل JSON، خصوصًا إذا كانت البيانات تأتي من مصادر خارجية.
  • التأكد من الترميز: تأكد من أن ملفات JSON تكون بترميز UTF-8 لتجنب مشاكل الحروف غير الإنجليزية.
  • التعامل مع JSON الضخم: استخدم مكتبات محسنة مثل ujson للبيانات الكبيرة.

مثال: معالجة JSON باستخدام try-except

try:
    with open("data.json", "r") as file:
        data = json.load(file)
except json.JSONDecodeError as e:
    print(f"خطأ في قراءة JSON: {e}")
Python

الأسئلة الشائعة (FAQs)

  1. كيف يمكنني تحويل JSON إلى كائنات Python والعكس؟
    • استخدم json.loads() لتحويل JSON إلى كائن Python، وjson.dumps() لتحويل كائن Python إلى JSON.
  2. هل يمكنني قراءة JSON من الإنترنت مباشرة؟
    • نعم، باستخدام مكتبة requests لجلب البيانات من رابط URL، ثم تحويلها إلى JSON باستخدام json.loads().
  3. ما هي المكتبة الأسرع لمعالجة JSON في Python؟
    • orjson وujson تعتبران من الخيارات الأسرع لمعالجة JSON.

روابط مفيدة


بهذا، نكون قد غطينا كل ما تحتاجه للتعامل مع JSON في Python بفعالية واحترافية. يمكنكم الآن معالجة البيانات ودمجها بسهولة في مشاريعكم باستخدام Python!

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *