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) تبدیل می‌شوند.

python object convert to json

 

مثال: تبدیل از پایتون به 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)