JSON
JSON متن است. دیکشنری نام و مقدار را داخل برنامه نگه میدارد، اما خودش هنوز JSON نیست. dumps همان دیکشنری را به یک خط متن بدل میکند. در این صفحه فایل باز نمیشود و مسیر هم ساخته نمیشود.
import json
lamp = {"color": "blue", "watts": 7}
text = json.dumps(lamp)
print(text)
روی صفحه دقیقاً {"color": "blue", "watts": 7} دیده میشود. color و blue داخل گیومهٔ دوتاییاند. watts عدد است، پس 7 گیومه ندارد. فاصلهٔ بعد از دونقطه و فاصلهٔ بعد از ویرگول هم بخشی از همین متن است. text یک رشته است. فایلی ساخته نمیشود. open و Path در این برنامه نیستند.
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 است.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود