آموزش با ماژول Json، JSON (JavaScript Object Notation) یک فرمت استاندارد برای تبادل داده بین سیستمها است که به دلیل خوانایی بالا و ساختار ساده بسیار پرکاربرد است. پایتون ماژول داخلی json را برای کار با دادههای JSON ارائه میدهد.
1. کار با دادههای JSON
وارد کردن ماژول json
برای کار با JSON، ابتدا باید ماژول json را وارد کنید:
import json
تبدیل دیکشنری پایتون به JSON
برای تبدیل دادههای پایتون به فرمت JSON از تابع json.dumps استفاده میکنیم.
مثال:
data = {
"name": "Alice",
"age": 25,
"city": "New York"
}
json_data = json.dumps(data)
print(json_data)
خروجی:
{"name": "Alice", "age": 25, "city": "New York"}
ذخیره داده JSON در فایل
برای ذخیره داده JSON در یک فایل از تابع json.dump استفاده میشود.
مثال:
with open("data.json", "w") as file:
json.dump(data, file)
این کد یک فایل به نام data.json ایجاد میکند که دادههای JSON در آن ذخیره میشوند.
خواندن داده JSON از فایل
برای بارگذاری داده JSON از یک فایل، از تابع json.load استفاده کنید.
مثال:
with open("data.json", "r") as file:
loaded_data = json.load(file)
print(loaded_data)
خروجی:
{'name': 'Alice', 'age': 25, 'city': 'New York'}
تبدیل JSON به دیکشنری پایتون
برای تبدیل یک رشته JSON به دیکشنری پایتون از تابع json.loads استفاده کنید.
مثال:
json_string = '{"name": "Bob", "age": 30, "city": "London"}'
python_dict = json.loads(json_string)
print(python_dict)
خروجی:
{'name': 'Bob', 'age': 30, 'city': 'London'}
پارامترهای پیشرفته در dumps
قالببندی زیبا:
با استفاده از آرگومان indent میتوانید خروجی JSON را خواناتر کنید.
مثال:
formatted_json = json.dumps(data, indent=4)
print(formatted_json)
خروجی:
{
"name": "Alice",
"age": 25,
"city": "New York"
}
مرتبسازی کلیدها:
برای مرتب کردن کلیدها در خروجی JSON از sort_keys استفاده کنید.
sorted_json = json.dumps(data, sort_keys=True, indent=4)
print(sorted_json)
خروجی:
{
"age": 25,
"city": "New York",
"name": "Alice"
}
مدیریت خطاها
هنگام کار با JSON ممکن است خطاهایی رخ دهد. برای مدیریت این خطاها از بلوکهای try-except استفاده کنید.
مثال:
invalid_json = '{"name": "Alice", "age": 25,}' # ویرگول اضافی
try:
data = json.loads(invalid_json)
except json.JSONDecodeError as e:
print(f"JSON Decode Error: {e}")
خروجی:
JSON Decode Error: Expecting property name enclosed in double quotes: line 1 column 30 (char 29)
کاربردهای عملی JSON در پایتون
- ارتباط با APIها: بسیاری از APIها از JSON برای ارسال و دریافت داده استفاده میکنند.
import requests response = requests.get("https://jsonplaceholder.typicode.com/todos/1") todo = response.json() print(todo) - ذخیره تنظیمات: JSON به دلیل ساختار ساده برای ذخیره تنظیمات برنامه مناسب است.
settings = { "theme": "dark", "language": "en", "autosave": True } with open("settings.json", "w") as file: json.dump(settings, file, indent=4)
به طور کلی می توان گفت:
ماژول json پایتون ابزار قدرتمندی برای مدیریت دادههای JSON فراهم میکند. با استفاده از این ماژول، میتوانید دادهها را به راحتی بین سیستمها انتقال دهید، آنها را ذخیره و بازیابی کنید و در برنامههای کاربردی مختلف از JSON بهره ببرید.
2. تبدیل بین JSON و ساختارهای داده پایتون
یکی از ویژگیهای قدرتمند پایتون، توانایی تبدیل دادههای JSON به ساختارهای داخلی پایتون و بالعکس است. این فرآیند با استفاده از توابع json.dumps و json.loads برای رشتهها و json.dump و json.load برای فایلها انجام میشود.
تبدیل JSON به دیکشنری پایتون
استفاده از json.loads
تابع json.loads یک رشته JSON را به دیکشنری پایتون تبدیل میکند.
مثال:
import json
json_string = '{"name": "Alice", "age": 25, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(type(data))
خروجی:
{'name': 'Alice', 'age': 25, 'city': 'New York'}
<class 'dict'>
خواندن JSON از فایل و تبدیل به دیکشنری پایتون
برای خواندن JSON از فایل از json.load استفاده میکنیم.
مثال:
with open("data.json", "r") as file:
data = json.load(file)
print(data)
تبدیل دیکشنری پایتون به JSON
استفاده از json.dumps
تابع json.dumps یک دیکشنری یا لیست پایتون را به یک رشته JSON تبدیل میکند.
مثال:
data = {
"name": "Alice",
"age": 25,
"city": "New York"
}
json_string = json.dumps(data)
print(json_string)
print(type(json_string))
خروجی:
{"name": "Alice", "age": 25, "city": "New York"}
<class 'str'>
ذخیره دیکشنری پایتون به فایل JSON
برای ذخیره یک دیکشنری در فایل JSON از json.dump استفاده میکنیم.
مثال:
with open("output.json", "w") as file:
json.dump(data, file, indent=4)
این کد دیکشنری data را به فایل output.json با قالببندی زیبا ذخیره میکند.
تبدیل لیست پایتون به JSON
مثال:
fruits = ["apple", "banana", "cherry"]
json_string = json.dumps(fruits)
print(json_string)
print(type(json_string))
خروجی:
["apple", "banana", "cherry"]
<class 'str'>
تبدیل JSON به لیست پایتون
مثال:
json_string = '["apple", "banana", "cherry"]'
fruits = json.loads(json_string)
print(fruits)
print(type(fruits))
خروجی:
['apple', 'banana', 'cherry']
<class 'list'>
تبدیل دیکشنری پایتون به JSON مرتب
با استفاده از آرگومان sort_keys میتوان کلیدهای دیکشنری را به ترتیب الفبایی مرتب کرد.
مثال:
json_string = json.dumps(data, sort_keys=True, indent=4)
print(json_string)
خروجی:
{
"age": 25,
"city": "New York",
"name": "Alice"
}
به طور کلی می توان گفت:
پایتون ابزارهای قدرتمندی برای تبدیل دادههای JSON به ساختارهای داخلی و ذخیره آنها ارائه میدهد. با استفاده از این قابلیتها، میتوان دادهها را به راحتی بین سیستمها یا فایلها انتقال داد و پردازش کرد.
