در حال بارگذاری...

JSON

JSON متن است. دیکشنری نام و مقدار را داخل برنامه نگه می‌دارد، اما خودش هنوز JSON نیست. dumps همان دیکشنری را به یک خط متن بدل می‌کند. در این صفحه فایل باز نمی‌شود و مسیر هم ساخته نمی‌شود.

دیکشنری یک خط متن می‌شود

python
import json
lamp = {"color": "blue", "watts": 7}
text = json.dumps(lamp)
print(text)

روی صفحه دقیقاً {"color": "blue", "watts": 7} دیده می‌شود. color و blue داخل گیومهٔ دوتایی‌اند. watts عدد است، پس 7 گیومه ندارد. فاصلهٔ بعد از دونقطه و فاصلهٔ بعد از ویرگول هم بخشی از همین متن است. text یک رشته است. فایلی ساخته نمی‌شود. open و Path در این برنامه نیستند.

متن دوباره دیکشنری می‌شود

python
import json
text = '{"color": "blue", "watts": 7}'
lamp = json.loads(text)
print(lamp["color"])
print(lamp["watts"])

اول blue دیده می‌شود و بعد 7. loads متن JSON را می‌خواند و دیکشنری را از نو می‌سازد. lamp["color"] کلمهٔ blue است. گیومه‌ها در متن ماندند و جزو مقدار نیستند. lamp["watts"] عدد 7 است، نه کلمهٔ 7. این برنامه فایل نمی‌خواند. متن از قبل داخل متغیر است.

📊 dumps و loads

فراخوانی شروع نتیجه
json.dumps یک دیکشنری یک خط متن JSON، و هیچ فایلی نوشته نمی‌شود
json.loads متن JSON یک دیکشنری، و هیچ فایلی خوانده نمی‌شود

اگر متن JSON درست نباشد، loads می‌ایستد. نام این ایست JSONDecodeError است. {color: blue} JSON نیست، چون نام‌ها و کلمهٔ blue گیومهٔ دوتایی ندارند. این خط در برنامه‌های همین صفحه نیست. به‌جای آن None گذاشته نمی‌شود و برنامه ادامه پیدا نمی‌کند.

صفحهٔ بعد جدول متنی CSV است. این صفحه فقط دیکشنری را به متن بدل می‌کند و همان متن را دوباره دیکشنری می‌کند.

متن، و دوباره دیکشنری

dumps همان {"color": "blue", "watts": 7} را نشان می‌دهد. loads بعد blue و 7 را نشان می‌دهد. 7 عدد است. خط خراب با JSONDecodeError می‌ایستد. فایلی نوشته یا خوانده نمی‌شود. صفحهٔ بعد جدول متنی CSV است.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود