کار با JSON در پایتون چیست؟
JSON یکی از پرکاربردترین قالبها برای ذخیرهسازی و انتقال اطلاعات در برنامهنویسی است. در پایتون میتوانیم با استفاده از ماژول json اطلاعات را به JSON تبدیل کنیم یا اطلاعات JSON را به دادههای قابل استفاده در پایتون تبدیل کنیم.
در این آموزش با JSON، تفاوت آن با Dictionary و روشهای خواندن، تبدیل و ذخیره اطلاعات JSON آشنا میشویم.
JSON چیست؟
JSON مخفف عبارت JavaScript Object Notation است. JSON یک قالب متنی ساده و قابل خواندن برای انسان و کامپیوتر است که برای انتقال و ذخیره اطلاعات استفاده میشود.
JSON در بسیاری از APIها، وبسایتها و برنامههای کاربردی استفاده میشود. برای مثال، یک برنامه میتواند اطلاعات کاربران را بهصورت JSON دریافت کند.
یک نمونه از داده JSON
{
"name": "Ali",
"age": 25,
"is_student": false
}
تفاوت JSON و Dictionary در پایتون
Dictionary یکی از انواع داده در پایتون است؛ اما JSON یک قالب متنی برای ذخیره یا انتقال اطلاعات محسوب میشود.
در Dictionary پایتون، کلیدها معمولاً با کوتیشن تکی یا دوتایی نوشته میشوند، ولی در JSON استاندارد، کلیدها باید داخل کوتیشن دوتایی قرار بگیرند.
Dictionary در پایتون
user = {
"name": "Ali",
"age": 25,
"is_student": False
}
print(user)
JSON
{
"name": "Ali",
"age": 25,
"is_student": false
}
توجه کن که مقدار بولی در پایتون با
True و False
نوشته میشود، اما در JSON از
true و false
استفاده میکنیم.
وارد کردن ماژول json
برای کار با JSON در پایتون، ابتدا باید ماژول json را وارد کنیم. این ماژول بهصورت پیشفرض همراه پایتون نصب میشود و نیازی به نصب جداگانه ندارد.
import json
تبدیل Dictionary به JSON با json.dumps()
از متد json.dumps() برای تبدیل یک Dictionary یا داده پایتونی به متن JSON استفاده میکنیم.
مثال ساده
import json
user = {
"name": "Ali",
"age": 25,
"city": "Tehran"
}
json_data = json.dumps(user)
print(json_data)
خروجی
{"name": "Ali", "age": 25, "city": "Tehran"}
در این مثال، Dictionary به یک رشته متنی JSON تبدیل شده است.
مرتب و خوانا کردن JSON با indent
برای اینکه خروجی JSON خواناتر باشد، میتوانیم از پارامتر indent استفاده کنیم.
import json
user = {
"name": "Ali",
"age": 25,
"city": "Tehran"
}
json_data = json.dumps(user, indent=4)
print(json_data)
خروجی
{
"name": "Ali",
"age": 25,
"city": "Tehran"
}
مقدار
indent=4
باعث میشود اطلاعات با فاصلهگذاری مناسب نمایش داده شوند.
نمایش حروف فارسی در JSON
بهصورت پیشفرض، پایتون ممکن است حروف غیرانگلیسی را در خروجی JSON به شکل Unicode نمایش دهد. برای نمایش صحیح حروف فارسی، میتوانیم از پارامتر ensure_ascii=False استفاده کنیم.
import json
user = {
"name": "علی",
"city": "تهران"
}
json_data = json.dumps(
user,
ensure_ascii=False,
indent=4
)
print(json_data)
خروجی
{
"name": "علی",
"city": "تهران"
}
تبدیل JSON به Dictionary با json.loads()
از متد json.loads() برای تبدیل یک رشته JSON به داده قابل استفاده در پایتون، مانند Dictionary، استفاده میکنیم.
import json
json_data = '{"name": "Ali", "age": 25}'
user = json.loads(json_data)
print(user)
print(user["name"])
خروجی
{'name': 'Ali', 'age': 25}
Ali
در این مثال، رشته JSON به Dictionary تبدیل شده است و سپس مقدار کلید name را دریافت کردهایم.
ذخیره اطلاعات در فایل JSON با json.dump()
اگر بخواهیم اطلاعات را داخل یک فایل ذخیره کنیم، از متد json.dump() استفاده میکنیم.
import json
user = {
"name": "Ali",
"age": 25,
"city": "Tehran"
}
with open("user.json", "w", encoding="utf-8") as file:
json.dump(
user,
file,
ensure_ascii=False,
indent=4
)
در این کد، فایل
user.json
ساخته میشود و اطلاعات Dictionary داخل آن ذخیره خواهد شد.
حالت
"w"
برای نوشتن اطلاعات در فایل استفاده میشود و
encoding="utf-8"
امکان ذخیره صحیح حروف فارسی را فراهم میکند.
خواندن اطلاعات از فایل JSON با json.load()
برای خواندن اطلاعات ذخیرهشده در یک فایل JSON، از متد json.load() استفاده میکنیم.
import json
with open("user.json", "r", encoding="utf-8") as file:
user = json.load(file)
print(user)
print(user["name"])
در این مثال، اطلاعات فایل JSON خوانده شده و در متغیر
user
قرار میگیرد.
مثال کاربردی: ذخیره اطلاعات چند کاربر
در مثال زیر، اطلاعات چند کاربر را داخل یک لیست قرار میدهیم و سپس آنها را در فایل JSON ذخیره میکنیم.
import json
users = [
{
"name": "Ali",
"age": 25
},
{
"name": "Sara",
"age": 22
},
{
"name": "Reza",
"age": 30
}
]
with open("users.json", "w", encoding="utf-8") as file:
json.dump(
users,
file,
ensure_ascii=False,
indent=4
)
print("اطلاعات کاربران ذخیره شد.")
محتوای فایل users.json
[
{
"name": "Ali",
"age": 25
},
{
"name": "Sara",
"age": 22
},
{
"name": "Reza",
"age": 30
}
]
تفاوت متدهای مهم JSON
| متد | کاربرد |
|---|---|
| json.dumps() | تبدیل داده پایتون به رشته JSON |
| json.loads() | تبدیل رشته JSON به داده پایتون |
| json.dump() | ذخیره داده در فایل JSON |
| json.load() | خواندن داده از فایل JSON |
نکات مهم درباره JSON
- JSON یک قالب متنی برای انتقال و ذخیره اطلاعات است.
- کلیدهای JSON باید داخل کوتیشن دوتایی باشند.
-
برای تبدیل Dictionary به رشته JSON از
json.dumps()استفاده میکنیم. -
برای تبدیل رشته JSON به داده پایتون از
json.loads()استفاده میکنیم. -
برای ذخیره اطلاعات در فایل از
json.dump()استفاده میشود. -
برای خواندن اطلاعات از فایل از
json.load()استفاده میکنیم. -
برای نمایش درست حروف فارسی در JSON از
ensure_ascii=Falseاستفاده کن.
جمعبندی آموزش JSON در پایتون
JSON یکی از قالبهای مهم در دنیای برنامهنویسی و توسعه وب است. با استفاده از ماژول json در پایتون میتوانیم دادهها را به JSON تبدیل کنیم، اطلاعات JSON را بخوانیم و دادهها را در فایل ذخیره کنیم.
یادگیری JSON برای کار با APIها، پروژههای هوش مصنوعی، ذخیره اطلاعات کاربران و توسعه برنامههای کاربردی بسیار مفید است.
سؤالات متداول درباره JSON
آیا برای استفاده از JSON باید آن را نصب کنیم؟
خیر. ماژول json بهصورت پیشفرض در پایتون وجود دارد و نیازی به نصب جداگانه ندارد.
تفاوت dumps و dump چیست؟
متد
dumps()
داده را به رشته JSON تبدیل میکند، اما متد
dump()
داده را مستقیماً در یک فایل ذخیره میکند.
تفاوت loads و load چیست؟
متد
loads()
رشته JSON را میخواند، اما متد
load()
اطلاعات را از یک فایل JSON دریافت میکند.
آیا JSON در پروژههای هوش مصنوعی استفاده میشود؟
بله. JSON در بسیاری از APIها و سرویسهای نرمافزاری استفاده میشود و برای ارسال و دریافت اطلاعات بین برنامهها کاربرد دارد.