التعامل مع هياكل JSON المتداخلة
تنقّل في كائنات JSON المتداخلة والمعقدة وحوّلها
التعامل مع هياكل JSON المتداخلة درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
مقدمة
الوصول إلى المفاتيح المتداخلة
import json
data = {'user': {'address': {'city': 'NYC', 'zip': '10001'}}}
print(data['user']['address']['city'])الوصول الآمن إلى البيانات المتداخلة
data = {'user': {'name': 'Alice'}}
city = data.get('user', {}).get('address', {}).get('city', 'unknown')
print(city)التكرار على مصفوفات الكائنات
import json
data = json.loads('[{"name":"Alice"},{"name":"Bob"}]')
for user in data:
print(user['name'])تسطيح JSON المتداخلة
def flatten(d, prefix=''):
result = {}
for k, v in d.items():
key = f'{prefix}.{k}' if prefix else k
if isinstance(v, dict):
result.update(flatten(v, key))
else:
result[key] = v
return result
print(flatten({'a': {'b': {'c': 1}}, 'd': 2}))تصفية المصفوفات
data = [{'name':'A','active':True},{'name':'B','active':False}]
active = [u for u in data if u.get('active')]
print(active)تحويل البيانات المتداخلة
data = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]
names = [d['name'] for d in data]
print(names)التحقق من المخطط باستخدام jsonschema
# from jsonschema import validate
# schema = {'type':'object','required':['name']}
# validate({'name':'Alice'}, schema) # OK
# validate({}, schema) # raises ValidationError
print('schema validation demo')التحديث العميق للقواميس المتداخلة
def deep_update(base, override):
for k, v in override.items():
if isinstance(v, dict) and isinstance(base.get(k), dict):
deep_update(base[k], v)
else:
base[k] = v
return base
result = deep_update({'a': {'x': 1}}, {'a': {'y': 2}})
print(result)استعلامات بأسلوب jq باستخدام Python
def find_all(obj, key):
if isinstance(obj, dict):
if key in obj: yield obj[key]
for v in obj.values(): yield from find_all(v, key)
elif isinstance(obj, list):
for item in obj: yield from find_all(item, key)
data = {'a': {'name': 'x'}, 'b': [{'name': 'y'}]}
print(list(find_all(data, 'name')))تسلسل البيانات إلى NDJSON
import json
objects = [{'id': 1}, {'id': 2}, {'id': 3}]
ndjson = '\n'.join(json.dumps(o) for o in objects)
print(ndjson)تحقق سريع
مراجعة
تابع التقدّم
الأسئلة الشائعة
هل درس «التعامل مع هياكل JSON المتداخلة» مجاني؟
نعم — نص درس «التعامل مع هياكل JSON المتداخلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «التعامل مع هياكل JSON المتداخلة»؟
تنقّل في كائنات JSON المتداخلة والمعقدة وحوّلها تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «التعامل مع هياكل JSON المتداخلة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ترميز JSON وفك ترميزه
- التعامل مع هياكل JSON المتداخلة
- قراءة CSV باستخدام csv.reader
- كتابة CSV باستخدام csv.DictWriter