Coding for KidsCoding for Kids
المستويات الإبداعيةالتحدياتدليل المعلم
صوت للميزات
دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

وحدات التسلسل
وحدة JSON

الهدف

اذهب إلى محطة الخدمة وتأكد من تخزين البيانات بشكل صحيح باستخدام وحدة JSON لتنسيق الملفات.

هناك محطة خدمة تقع جنوب مبنى الملحق في منطقة البناء الجديدة، وسيتم إعادة تطوير هذه المنطقة بالكامل لزراعة المحاصيل. تحتوي المحطة على مجموعة متنوعة من المحطات الطرفية التي تعالج البيانات للتطوير الجديد، يمكننا كتابة البيانات يدويًا، لكن ذلك سيستغرق وقتًا طويلًا. لعملية التعامل مع البيانات يمكننا استخدام JSON الذي يرمز إلى ترميز الكائنات في JavaScript، وهو تنسيق بيانات مستقل عن لغات البرمجة ويخزن المعلومات بطريقة سهلة القراءة لتخزين البيانات ونقلها.

من أجل استخدام JSON مع python يمكننا استخدام import json الذي سيمكننا من الوصول إلى وظائف JSON، ولأغراضنا سنستخدم الوظائف التالية:

  • json.loads(): يحول سلسلة JSON إلى بيانات بايثون، يأخذ وسيط واحد، وهو السلسلة التي ترغب في تحليلها إلى بايثون.
  • json.dumps(): يحول بيانات بايثون إلى كائن سلسلة JSON، يمكن لهذه الدالة أن تأخذ ما يصل إلى أربعة (4) وسيطات، الوسيطة الأولى فقط هي المطلوبة لاستخدام الدالة. وهي كما يلي.
    1. بيانات بايثون التي ترغب في تحويلها إلى JSON: يمكن أن تكون من الأنواع التالية: القواميس، القوائم، الترتيبات، السلاسل، الأعداد الصحيحة، الأعداد العشرية، القيم البولينية، وأنواع البيانات None.
    2. indent: عدد الفراغات التي ترغب في إضافتها في بداية نقطة البيانات
    3. separators: هذه هي الأجزاء التي ترغب في ظهورها بين ونهاية نقاط البيانات.
    4. sort_keys: يقوم بترتيب مفاتيح القاموس أبجديًا إذا كنت تقوم بتحويل نوع ملف القاموس.

للشروع في العمل، توجه إلى علامة X الذهبية في المعسكر الخارجي على اليسار وواجه المكتب الذي عليه المذكرة. استخدم دالة read() للتحقق من المعلومات المطلوبة لتأكيد حالة المحطة الطرفية وسجّلها. اتجه إلى علامة X الخفيفة أمام المحطة الطرفية، هناك ثابت باسم transmission، استخدم json.dumps() لتنسيقه كـ json حتى نتمكن من تحويله، مثل هذا: transmission = json.dumps(transmission) .

قم بإنشاء قاموس باسم load وخزن قيمة json.loads() مع الثابت transmission كوسيط. هذا سيحول الـ Json إلى بايثون بحيث يمكن الوصول إلى معلوماته بسهولة. استخدم دالة speak() مع المفاتيح الموضحة في المذكرة وباستخدام القاموس load الذي أنشأته. على سبيل المثال: player.speak(load["system"])، افعل ذلك مع جميع المفاتيح.

بعد التحقق من المعلومات على المحطة الطرفية، اتجه نحو المحطة، ادخل واذهب إلى علامة X الخفيفة فوق السجادة الخضراء. تحقق من المذكرة باستخدام دالة read()، افحص وسجل القيم، في المحرر يوجد قاموس مكتوب مسبقًا باسم profile، املأ القيم المفقودة بالمعلومات الموجودة في المذكرة.

اتجه إلى علامة X الداكنة فوق السجادة الخضراء، واجه المحطة الطرفية وأنشئ متغيرًا باسم transfer وخزن قيمة json.dumps() وأضف القاموس profile كوسيط وحيد. بهذا نحول القاموس إلى كائن سلسلة JSON. استخدم دالة display() المكتوبة مسبقًا وأضف الـ Json transfer لتخزين البيانات في المحطة الطرفية.

اتجه إلى علامة X الداكنة فوق السجادة الحمراء واستخدم دالة read() للتحقق من البيانات المدخلة سابقًا في المحطة الطرفية. البيانات ليست معروضة بتنسيق صحيح، ومن أجل تخزين المعلومات بشكل صحيح يجب تخزينها وتنسيقها في JSON. يتم تخزين البيانات في ثابت قاموسي يسمى red_data، أنشئ متغيرًا باسم red_storage وخزن قيمة دالة json.dumps().

من أجل تنسيق البيانات، أضف الوسيطات التالية إلى الدالة: أضف red_data لتحويل الثابت إلى JSON، أضف indent واضبطه على 5 لتنسيق النص، أضف separators وأضف ("- ", " = ") لإضافة هذه الرموز في نهاية كل سطر. يجب أن يبدو السطر هكذا: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")) . استخدم دالة display() المكتوبة مسبقًا وأضف سلسلة JSON red_storage لتخزين وعرض البيانات المنسقة.

اتجه إلى علامة X الداكنة فوق السجادة الزرقاء وواجه المحطة الطرفية واستخدم دالة read()، مثل السابق البيانات غير مخزنة بشكل صحيح وتحتاج إلى تنسيق وكذلك ترتيب. البيانات مخزنة في ثابت يسمى blue_data، أنشئ متغيرًا باسم blue_storage وخزن قيمة دالة json.dumps().

بالنسبة للوسيطات: أضف blue_data لتحويل الثابت إلى JSON، أضف indent واضبطه على 4 لتنسيق النص، أضف separators وأضف (".0", " = ") لإضافة هذه الرموز في نهاية كل سطر. بالإضافة إلى ذلك، أضف الوسيطة sort_keys كوسيطة أخيرة واضبطها على True، هكذا: sort_keys=True . استخدم دالة display() المكتوبة مسبقًا وأضف سلسلة JSON blue_storage لتخزين وعرض البيانات المرتبة واستكمال المستوى.

كتاب الكود