Python JSON
json یک گرامر برای ذخیره سازی و تبادل داده است.
json یک متن است که با نحوه نگارش اشیاء جاوااسکریپت نوشته میشود.
json در پایتون
پایتون دارای یک پکیج از پیش ساخته شده به نام json است که میتواند با داده های json کار کند.
مثال: import کردن ماژول json
import json
parse JSON (تجزیه)- تبدیل از json به پایتون
اگر یک رشته متنی JSON داشته باشیم میتوان با استفاده از متد ()json.loads آن را تجزیه کنیم. نتیجه به صورت دیکشنری پایتون خواهد بود.
مثال: تبدیل از json به پایتون
import json
# some JSON:
x = '{ "name":"John", "age":30, "city":"New
York"}'
# parse x:
y = json.loads(x)
# the result is a
Python dictionary:
print(y["age"])
تبدیل از پایتون به JSON
اگر یک شیئ (object) از پایتون داشته باشیم میتوان با استفاده از متد ()json.dumps آن را به رشته های json تبدیل کرد.
مثال: تبدیل از پایتون به json
import json
# a Python object (dict):
x = {
"name":
"John",
"age": 30,
"city": "New York"
}
#
convert into JSON:
y = json.dumps(x)
# the result is a JSON string:
print(y)
اشیاء پایتون که قابلیت تبدیل شدن به رشته های JSON را دارند در زیر لیست کرده ایم.
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
مثال: تبدیل اشیاء پایتون به JSON
import json
print(json.dumps({"name": "John", "age": 30}))
print(json.dumps(["apple",
"bananas"]))
print(json.dumps(("apple", "bananas")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
وقتی که از پایتون به JSON تبدیل میکنید اشیاء پایتون به معالدل خود در JSON (JavaScript) تبدیل میشوند.
مثال: تبدیل از پایتون به JSON با تمام انواع داده ای مجاز
import json
x = {
"name":
"John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets":
None,
"cars": [
{"model": "BMW 230", "mpg":
27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x))
فرمت بندی شکل خروجی
مثال قبلی رشته JSON را چاپ میکند اما قابلیت خوانایی پایینی دارد بدونه در نظر گرفتن فاصله یا دنداده گذاری.
متد ()json.dumps پارامتر هایی دارد که خروجی را به شکل قابل خواندن تر فرمت بندی میکند.
مثال: استفاده از پارامتر indent برای تعیین تعداد دندانه گذاری
import json
x = {
"name":
"John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets":
None,
"cars": [
{"model": "BMW 230", "mpg":
27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x, indent=4))
یا میتوانید از جداکننده های خاص خود استفاده کنید این مقادیر به طور پیشفرض روی (“:” , “,“) قرار دارند که به معنی جدا کردن اشیائ با استفاده از (,) و جدا کردن مقادیر و کلید ها با استفاده از (:) است.
برای این منظور میتوانیم خط آخر کد بالا را به شکل زیر تغییر دهیم.
json.dumps(x, indent=4, separators=(". ", " = "))
سفارشی کردن خروجی
متد ()json.dumps پارامتر هایی برای سفارشی کردن خروجی دارد.
مثال: مرتب کردن خروجی با استفاده از پارامتر sort_keys
json.dumps(x, indent=4, sort_keys=True)