العمل مع بيانات JSON في Python

JSON (ترميز كائنات JavaScript) هو تنسيق بيانات خفيف الوزن يستخدم لتبادل البيانات بين الخادم والعميل. يُستخدم عادةً في تطبيقات الويب لإرسال واستقبال البيانات. يوفر Python وحدة مدمجة تسمى json تسهل العمل مع بيانات JSON. سترشدك هذه المقالة خلال أساسيات العمل مع بيانات JSON في Python، بما في ذلك قراءة كائنات JSON وكتابتها ومعالجتها.

ما هو JSON؟

JSON هو تنسيق نصي سهل القراءة والكتابة لكل من البشر والآلات. يتكون من أزواج مفتاح-قيمة، على غرار قواميس Python. يبدو كائن JSON النموذجي على النحو التالي:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

استيراد وحدة JSON

تم تضمين وحدة json في مكتبة Python القياسية، لذا لا تحتاج إلى تثبيت أي شيء. ما عليك سوى استيرادها في بداية البرنامج النصي الخاص بك:

import json

قراءة بيانات JSON

يمكنك قراءة بيانات JSON من سلسلة أو ملف. تُستخدم طريقة json.loads() لتحليل بيانات JSON من سلسلة، بينما تُستخدم طريقة json.load() لقراءة بيانات JSON من ملف.

قراءة JSON من سلسلة

لقراءة JSON من سلسلة، استخدم طريقة json.loads()، والتي تقوم بتحويل سلسلة JSON إلى قاموس Python.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

قراءة JSON من ملف

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

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

كتابة بيانات JSON

يمكنك كتابة بيانات JSON إلى سلسلة أو ملف. تُستخدم طريقة json.dumps() لتحويل كائن Python إلى سلسلة JSON، بينما تُستخدم طريقة json.dump() لكتابة بيانات JSON إلى ملف.

كتابة JSON إلى سلسلة

لكتابة JSON إلى سلسلة، استخدم طريقة json.dumps()، التي تقوم بتحويل قاموس Python إلى سلسلة JSON.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

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

لكتابة بيانات JSON إلى ملف، استخدم طريقة json.dump(). تأخذ هذه الطريقة كائن Python وتكتبه إلى ملف بتنسيق JSON.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

طباعة بيانات JSON بشكل جميل

تحتوي طريقة json.dumps() على عدة معلمات تسمح لك بتنسيق بيانات JSON لتحسين قابلية القراءة. تحدد معلمة indent عدد المسافات التي يجب استخدامها للتباعد، بينما تقوم معلمة sort_keys ​​بفرز المفاتيح في المخرجات.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

التحويل بين أنواع البيانات JSON وPython

يمكن لوحدة json في Python التعامل مع أنواع بيانات مختلفة وتحويلها بين JSON وPython. فيما يلي مرجع سريع:

  • dict (بايثون) إلى object (JSON)
  • قائمة (بايثون) إلى مصفوفة (JSON)
  • str (بايثون) إلى string (JSON)
  • int، float (بايثون) إلى number (JSON)
  • صحيح، خطأ (بايثون) إلى صواب، خطأ (JSON)
  • None (Python) إلى null (JSON)

معالجة أخطاء JSON

أثناء العمل باستخدام JSON، قد تحدث أخطاء بسبب التنسيق غير الصحيح أو البيانات غير المتوقعة. تثير وحدة json استثناءات مثل JSONDecodeError عندما تواجه مثل هذه المشكلات. استخدم الكتل try وexcept للتعامل مع هذه الأخطاء بسلاسة.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

خاتمة

يعد التعامل مع بيانات JSON مهارة أساسية لمطوري Python، وخاصة في تطوير الويب وعلوم البيانات. توفر وحدة json طرقًا سهلة الاستخدام لقراءة بيانات JSON وكتابتها ومعالجتها. من خلال إتقان هذه التقنيات، يمكنك التعامل بكفاءة مع بيانات JSON في تطبيقات Python الخاصة بك.