JSON در پایتون
JSON یک فرمت متنی است که برای ذخیره و انتقال دادهها استفاده میشود.
JSON یک شئ جاوااسکریپت و مخفف JavaScript Object Notation است.
در پایتون از JSON همانند ماژولها استفاده می کنند.
استفاده از JSON در پایتون
JSON یکی از ماژولهای آماده در پایتون است و فقط باید آن را import کنیم.
import json
نکته: برای آشنایی بیشتر به درس ماژول پایتون مراجعه کنید.
تبدیل JSON به پایتون
با استفاده از متد ()loads میتوانیم رشته حاوی شئ جاوااسکریپت را به دیکشنری پایتون تبدیل کنیم.
برای مثال یک رشته به نام x که حاوی یک دیکشنری است، ایجاد می کنیم.
x = '{"name":"Alireza", "age":20, "country":"iran"}'
متغیر y را ایجاد می کنیم و متغیر x را به فرمت json تبدیل می کنیم.
y = json.loads(x)
در آخر نوع متغیر y را چاپ می کنیم که مشاهده می کنیم به یک دیکشنری تبدیل شده است.
print(type(y))
نکته: برای آشنایی بیشتر با دیکشنریها، به بخش دیکشنریها در پایتون مراجعه کنید.
تبدیل پایتون به JSON
برعکس بخش قبل، اگر یک داده پایتون(دیکشنری) را بخواهید به داده جاوااسکریپت تبدیل کنید، باید از متد ()dumps استفاده کنید.
برای مثال یک دیکشنری ایجاد میکنیم.
x = {
"name": "Alireza",
"age": 20,
"country": "Iran"
}
این دیکشنری را با متد ()dumps به یک رشته جاوااسکریپتی تبدیل می کنیم.
y = json.dumps(x)
نوع متغیر y را برمی گردانیم.
print(type(y))
داده های قابل تبدیل به JSON در پایتون
از طریق متد ()json.dumps، تمام دادههای زیر امکان تبدیل به دادۀ JSON را دارند:
نوع داده | نحو نوشتار |
دیکشنری - dict | json.dumps({"name": "Alireza", "age": 20} |
لیست - list | json.dumps(["apple", "bananas"]) |
تاپل - tuple | json.dumps(("apple", "bananas") |
رشته - str | (json.dumps("Hello") |
اعداد صحیح - int | json.dumps(57) |
اعداد اعشاری - float | json.dumps(23.64) |
بولی(boolean) | (json.dumps(True) |
None | json.dumps(None) |
معادل JSON در پایتون
هنگامی که شما دادههایی را از پایتون به JSON تبدیل میکنید، این دادههای پایتون به معادل جاوااسکریپتی(همان JSON) خود تبدیل میشوند.
پایتون | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
فرمت کردن نتیجه json در پایتون
خروجی JSON در حالت عادی غیر مرتب و ناخوانا است، متد ()json.dumps پارامترهایی دارد که این مشکل را حل میکند.
یکی از این پارامترها indent است، که در کد فاصلههایی را ایجاد میکند تا خواندن آن آسانتر شود.
dumps(x, indent=4)
همچنین برای شئها میتوانیم جدا کننده(seperator) معرفی کنیم.
مقدار پیشفرض جداکننده (", ", ": ") است، که به معنای کاما(,) و یک فاصله برای جدا کردن هر داده و دونقطه (:) و یک فاصله برای مقداردهی به هر کلید است.
json.dumps(x, indent=4, separators=(". ", " = "))
مرتبسازی نتیجه json در پایتون
متد ()json.dumps پارامترهای دیگری برای مرتبسازی کلیدهای شئ دارد.
این پارامتر sort_key است که با پذیرفتن مقدار True نتیجه خروجی را مرتب سازی می کند.
برای مثال کلیدهای یک دیکشنری را براساس حروف الفبا مرتب سازی می کند.
json.dumps(x, indent=4, sort_keys=True)
خلاصه درس
در این درس با ماژول JSON و کاربرد آن آشنا شدید.