0Pricing
Python Academy · درس

ترميز JSON وفك ترميزه

استخدم json.loads وjson.dumps وjson.load/dump لإدخال JSON وإخراجه

ترميز JSON وفك ترميزه درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

تحوّل وحدة json في Python بين كائنات Python وسلاسل JSON أو ملفات JSON باستخدام دوال بسيطة ومتسقة.

json.dumps()

تسلسل `json.dumps(obj)` كائن Python إلى سلسلة JSON. وتطبع indent=2 السلسلة بتنسيق واضح.
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

تحلّل `json.loads(s)` سلسلة JSON إلى كائن Python. وتتحول كائنات JSON إلى قواميس، والمصفوفات إلى قوائم.
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() إلى ملف

تسلسل `json.dump(obj, file_object)` الكائن مباشرة إلى ملف. ولا حاجة إلى حفظ سلسلة أولًا.
import json, tempfile, os
tmp = tempfile.mktemp(suffix='.json')
with open(tmp, 'w') as f:
    json.dump({'x': 1}, f, indent=2)
print(open(tmp).read())
os.unlink(tmp)

json.load() من ملف

تحلّل `json.load(file_object)` JSON مباشرةً من كائن ملف مفتوح.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

مطابقة أنواع JSON

كائن JSON→dict. مصفوفة→list. سلسلة نصية→str. رقم→int/float. true/false→True/False. null→None.
import json
s = '[1, "two", true, null, {"a": 3.14}]'
print(json.loads(s))

الأنواع غير القابلة للتسلسل

لا يمكن تسلسل datetime وset وbytes إلى JSON. وفّر دالة default= أو أنشئ فئة فرعية من JSONEncoder.
import json
from datetime import datetime
def default(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError(f'{type(obj)} not serializable')
print(json.dumps({'ts': datetime.now()}, default=default))

sort_keys وseparators

ترتّب sort_keys=True مفاتيح القاموس. وتزيل separators=(',', ':') المسافات البيضاء للحصول على مخرجات مضغوطة.
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

الطباعة بتنسيق واضح

ينتج `json.dumps(obj, indent=4, ensure_ascii=False)` JSON سهل القراءة مع الحفاظ على محارف Unicode.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

تُطلق `json.loads(invalid)` الاستثناء json.JSONDecodeError. غلّف التحليل دائمًا بـ try/except عند تحليل إدخال المستخدم.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

تحديث ملفات JSON

اقرأ ← عدّل ← اكتب مجددًا: هذا هو النمط القياسي لتحديث ملف إعدادات JSON.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

تحقق سريع

أي دالة تحلّل سلسلة JSON إلى كائن Python؟

مراجعة

استخدم json.dumps/loads للسلاسل، وjson.dump/load للملفات. الأنواع: object→dict، وarray→list، وnull→None. والتسلسل المخصص عبر دالة default=.

واصلوا التقدم

واصلوا العمل الرائع! انتقلوا إلى الدرس التالي.

الأسئلة الشائعة

هل درس «ترميز JSON وفك ترميزه» مجاني؟

نعم — نص درس «ترميز JSON وفك ترميزه» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «ترميز JSON وفك ترميزه»؟

استخدم json.loads وjson.dumps وjson.load/dump لإدخال JSON وإخراجه تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ترميز JSON وفك ترميزه»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ترميز JSON وفك ترميزه
  2. التعامل مع هياكل JSON المتداخلة
  3. قراءة CSV باستخدام csv.reader
  4. كتابة CSV باستخدام csv.DictWriter
← العودة إلى Python Academy