الدرس 56 من 56 · بايثون في الواقع

تطبيق عملي — جالب بيانات حية كامل

نجمع كل شي تعلمناه بوحدة واحدة: برنامج يطلب بيانات من الإنترنت، يحللها كـ JSON، ويطبع تقرير بتاريخ الطلب:

import json
from urllib.request import urlopen
from datetime import datetime

url = "https://jsonplaceholder.typicode.com/users/1"

print("طلب بتاريخ:", datetime.now().strftime("%Y/%m/%d %H:%M"))

with urlopen(url) as resp:
    user = json.loads(resp.read().decode("utf-8"))

print("الاسم:", user["name"])
print("المدينة:", user["address"]["city"])
print("الشركة:", user["company"]["name"])

# بعد ما ناخذ المعلومة نحفظها محلياً
with open("user.json", "w", encoding="utf-8") as f:
    json.dump(user, f, ensure_ascii=False, indent=2)
print("انحفظ الملف ✓".replace("✓", "- تم"))

لاحظ: json.dump (بدون s) تكتب مباشرة إلى ملف. ومع ensure_ascii=False تظل الحروف العربية سليمة.

هذا هو مسار البرامج الحقيقية: طلب ← تحويل ← استخراج ← حفظ — والباقي مجرد تكرار للنمط نفسه.

اختبار سريع للدرس

جاوب على كل الأسئلة — لازم كلها صح. إذا غلطت بيطلع صندوق ذهبي يفهّمك وش الخطأ. مو عيب تغلط، كل مبرمج بالعالم غلط وأخذ منها درس.

1. وش الفرق بين json.dump و json.dumps؟
2. ليش نمرر ensure_ascii=False عند الحفظ؟
3. وش ترتيب مسار البرنامج الحقيقي بالدرس؟
الدرس 55 نهاية الدورة
FeLiXFeLiX AI — مساعد المنصتين