پایتون یک package داخلی به نام json برای کار با داده های جیسون دارد که می توانیم از آن استفاده کنیم.
طریقه import کردن آن را در زیر برای شما آورده ایم.
import json
تجزیه JSON – تبدیل از JSON به پایتون
اگر رشته JSON دارید می توانید با استفاده از متد ()json.loads آن را تجزیه کنید.
نکته: نتیجه آن یک Dictionary (فرهنگ لغت) پایتون خواهد بود.
مثال: در زیر ما با استفاده از متد ()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
اگر یک شی در پایتون داشتید و خواستید آن را به رشته JSON تبدیل کنید، می توانید از متد ()json.dumps استفاده کنید.
مثال: در این مثال با استفاده از متد ()json.dumps یک شی در پایتون را به رشته 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 (جاوااسکریپت) تبدیل می شود.
در جدول زیر معادل این تبدیل ها را برای شما لیست کرده ایم.
پایتون | JSON |
---|---|
dict | object |
list | array |
tuple | array |
str | string |
int | number |
float | number |
true | true |
false | false |
none | null |
مثال: در این مثال یک شی که شامل همه انواع داده ای است را از پایتون به 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 داریم اما خوانایی این خروجی بدون قالب بندی و تورفتگی دشوار، سخت و گیج کننده است.
متد ()json.dumps دارای تعدادی پارامتر است که با مشخص کردن آن ها می توانیم خروجی خوانا تر داشته باشیم.
پارامتر indent تعداد تورفتگی ها در خروجی JSON را مشخص می کند که در مثال زیر آن را مشاهده می کنید.
json.dumps(x, indent=4)
شما همچنین می توانید جدا کننده ها را نیز مشخص کنید. به طور پیش فرض پایتون از (“,” , “:”) استفاده می کند، به این معنی که برای جدا کردن هر شی از یک کاما و یک فاصله استفاده می کند و برای جدا کردن کلید و مقدار از یک دو نقطه و یک فاصله استفاده می کند.
مثال: در زیر با استفاده از پارامتر separators برای تغییر مقادیر پیش فرض جدا کننده ها استفاده کرده ایم.
json.dumps(x, indent=4, separators=(". ", " = "))
مرتب سازی خروجی JSON
متد ()json.dumps دارای متدی است که می توانید مرتب سازی را بر اساس کلیدها در خروجی انجام دهید.
از پارامتر sort_keys می توانید برای انجام مرتب سازی بر اساس کلیدها استفاده کنید که مقدار true برای انجام آن و مقدار false برای نادیده گرفتن مرتب سازی است.
json.dumps(x, indent=4, sort_keys=True)