JSON
JSON یک نحو برای ذخیره و تبادل دادهها است.[۱]
JSON متن است که با نشانهگذاری (به انگلیسی: Notation) شیء جاوا اسکریپت نوشته میشود.
JSON در پایتون
پایتون یک package داخلی به نام json
دارد که میتوان از آن برای کار با دادههای JSON استفاده کرد.
مثال
import json
تجزیه JSON - تبدیل از JSON به پایتون
اگر یک رشته JSON دارید، میتوانید آن را با استفاده از متد json.loads()
تجزیه کنید.
مثال
از JSON به پایتون تبدیل میکند:
1 import json
2
3 # some JSON:
4 x = '{ "name":"John", "age":30, "city":"New York"}'
5
6 # parse x:
7 y = json.loads(x)
8
9 # the result is a Python dictionary:
10 print(y["age"])
تبدیل از پایتون به JSON
اگر یک شیء پایتون دارید، میتوانید آن را با استفاده از متد json.dumps()
به JSON تبدیل کنید.
مثال
از پایتون به JSON تبدیل میکند:
1 import json
2
3 # a Python object (dict):
4 x = {
5 "name": "John",
6 "age": 30,
7 "city": "New York"
8 }
9
10 # convert into JSON:
11 y = json.dumps(x)
12
13 # the result is a JSON string:
14 print(y)
میتوانید اشیاء پایتون از انواع زیر را به رشتههای JSON تبدیل کنید:
- dict
- list
- tuple
- string
- int
- float
- True
- False
- None
مثال
اشیاء پایتون را به رشتههای JSON تبدیل کرده و مقدارها را چاپ میکند:
1 import json
2
3 print(json.dumps({"name": "John", "age": 30}))
4 print(json.dumps(["apple", "bananas"]))
5 print(json.dumps(("apple", "bananas")))
6 print(json.dumps("hello"))
7 print(json.dumps(42))
8 print(json.dumps(31.76))
9 print(json.dumps(True))
10 print(json.dumps(False))
11 print(json.dumps(None))
هنگامی که پایتون را به JSON تبدیل میکنید، اشیاء پایتون به معادلهای JSON (جاوا اسکریپت) تبدیل میشوند:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
مثال
یک شیء پایتون شامل همهٔ انواع داده مجاز را تبدیل میکند:
1 import json
2
3 x = {
4 "name": "John",
5 "age": 30,
6 "married": True,
7 "divorced": False,
8 "children": ("Ann","Billy"),
9 "pets": None,
10 "cars": [
11 {"model": "BMW 230", "mpg": 27.5},
12 {"model": "Ford Edge", "mpg": 24.1}
13 ]
14 }
15
16 print(json.dumps(x))
قالب بندی نتیجه
مثال بالا رشته JSON را چاپ میکند، اما خواند آن بدون تورفتگی و خط جدید خیلی ساده نیست.
متد json.dumps()
پارامترهایی برای سادهتر کردن خواندن نتیجه دارد:
مثال
از پارامتر indent
برای تعریف تعداد تورفتگیها استفاده میکند:
json.dumps(x, indent=4)
همچنین میتوانید جداکنندهها را تعریف کنید، مقدار پیش فرض (", ", ": ") است که یعنی استفاده از کاما و یک فاصله برای جدا کردن هر شیء و یک دو نقطه و یک فاصله برای جدا کردن کلیدها از مقدارها:
مثال
از پارامتر separators
برای تغییر جدا کننده پیش فرض استفاده میکند:
json.dumps(x, indent=4, separators=(". ", " = "))
مرتب کردن نتیجه
متد json.dumps()
برای مرتب کردن نتیجه به ترتیب کلیدها یک پارامتر دارد:
مثال
از پارامتر sort_keys
برای تعیین اینکه آیا نتیجه باید مرتب شود یا نه استفاده میکند:
json.dumps(x, indent=4, sort_keys=True)
منابع آموزشی