ویدیو آموزش کارکردن با json در پایتون
پیش نیاز: what is json
به API میتونید از اینجا دسترسی پیدا کنید.
در این ویدیو میبینیم که چطور میشه در پایتون با json کار کرد و یک API هم آماده کردم تا بتونیم اطلاعاتی رو که اون API با json برای ما میفرسته رو هندل کنیم.
در این آموزش ، نحوه ذخیره داده ها در پایتون با استفاده از ماژول JSON را بررسی می کنیم. ما همچنین نحوه استفاده از متدهای json.dump () و json.dumps () ، متدهای json.load () و json.loads () و تفاوت آنها را یاد می گیریم. سرانجام، ما به نحوه serialize و deserialize کردن JSON به Object در پایتون خواهیم پرداخت.
# چرا داده ها را در پایتون با استفاده از ماژول JSON ذخیره می کنیم؟
1. توسعه دهندگان را قادر می سازد تا ساختارهای داده ساده را در یک فایل ریخته و در صورت نیاز بارگذاری کنند.
2. با استفاده از JSON می توان داده ها را بین برنامه های پایتون به اشتراک گذاشت.
3. فرمت JSON از پلتفرم یا زبان مستقل است. وقتی داده ها را با فرمت JSON ذخیره می کنید، می توانید به راحتی از آنها در سایر زبان های برنامه نویسی نیز استفاده کنید.
4. یادگیری آن ساده است و در قالب قابل حمل ارائه می شود.
# استفاده از json.dump()
برای استفاده از تابع json.dump () ابتدا ماژول json را وارد کنید. برای وارد کردن ماژول json ، از import json استفاده کنید. () json.dump به نوشتن داده ها در یک فایل JSON کمک می کند.
Syntax:
json.dump(data, file)
تابع () json.dump دو آرگومان دارد:
1. data: داده هایی که باید در یک فایل JSON نوشته شوند.
2. file: یک شیء فایل که می تواند برای ذخیره داده ها استفاده شود.
بیایید یک برنامه سریع برای ذخیره مجموعه ای از اعداد در یک فایل JSON ایجاد کنیم. برای ذخیره مجموعه اعداد ، از تابع json.dump () استفاده می کنیم:
import json
numbers = [10, 20, 30, 70, 191, 23] #create a set of numbers
filename = 'numbers.json' #use the file extension .json
with open(filename, 'w') as file_object: #open the file in write mode
json.dump(numbers, file_object) # json.dump() function to stores the set of numbers in
numbers.json file
در این برنامه، مجموعه اعداد را در numbers.json ذخیره می کنیم. پسوند .json نشان می دهد که فایل حاوی داده هایی با فرمت JSON است.
سپس به فایل در حالت 'w' (حالت نوشتن) دسترسی پیدا می کنیم تا بتوانیم داده ها را در یک فایل JSON نوشت. سرانجام ، تابع json.dump () مجموعه اعداد را در فایل number.json ذخیره می کند.
این برنامه خروجی ترمینال ندارد، اما وقتی پرونده number.json را باز می کنیم، داده های زیر را می بینیم:
[10, 20, 30, 70, 191, 23]
# استفاده از json.dumps()
متد () json.dumps می تواند برای تبدیل یک شی پایتون به یک رشته JSON استفاده شود.
Syntax:
json.dumps(data)
تابع () json.dumps یک پارامتر می گیرد ، یعنی داده هایی که باید به رشته JSON تبدیل شوند.
بیایید به مثال زیر نگاهی بیندازیم:
import json
data = {
'Name' : 'Felix',
'Occupation' : 'Doctor'
}
dict_1 = json.dumps(data) # converting dictionary to JSON
print(dict_1) # {'Name' : 'Felix','Occupation' : 'Doctor'}
# تفاوت بین dump و dumps
1. متد dump () دو پارامتر (داده و فایل) ، در حالی که متد dumps () تنها یک پارامتر (داده) می گیرد.
2. برخلاف متد dumps، متد dump با عملیات فایل ترکیب می شود.
# استفاده از json.load()
ما از تابع json.load برای خواندن یک فایل JSON استفاده می کنیم. تابع json.load () یک آرگومان می گیرد که شیء فایل است.
Syntax:
json.load(file_object)
فرض کنید، ما یک فایل JSON به نام student.json داریم که حاوی اشیاء JSON است.
{
"name": "Felix",
"Subjects": ["English", "Political Science"]
}
بیایید یک کد برای خواندن داده های ذخیره شده در پرونده student.json با استفاده از تابع json.load بنویسیم.
import json
with open(r,'student.json') as file_object:
data = json.load(file_object)
print(data) # {"name": "Felix", "Subjects": ["English", "Political Science"]}
تابع json.load () فایل JSON را تجزیه می کند و یک دیکشنری به نام data را برمی گرداند.
# استفاده از json.loads()
ما از متد json.loads () برای تجزیه یک رشته JSON و بازگشت یک شی پایتون مانند دیکشنری استفاده می کنیم. متد json.loads () محتویات فایل را به عنوان یک رشته می گیرد.
Syntax:
json.loads(json_string)
Example:
import json
# JSON string:
dict_1 = {
"Name": "Felix Maina",
"Contact Number": 0712345678,
"Email": "fely@gmail.com",
}
# parse dict_1:
y = json.loads(dict_1)
# the result is a Python dictionary:
print(y) #{ "Name": "Felix Maina", "Contact Number": 0712345678,"Email": "fely@gmail.com", }
در اینجا ، رشته dict_1 با استفاده از متد () json.loads تجزیه می شود که یک دیکشنری به نام y را برمی گرداند.
توجه: تفاوت اصلی بین json.loads () و json.load () این است که json.loads () رشته ها را می خواند در حالی که json.load () برای خواندن فایل ها استفاده می شود.
# سریال سازی داده های JSON در پایتون
Serialization فرآیند تبدیل یک نوع داده بومی به فرمت JSON است.
ماژول JSON یک شیء دیکشنری پایتون را به یک شی JSON تبدیل می کند. متدهای json.dump () و json.dumps () برای سریال سازی داده های پایتون به فرمت JSON استفاده می شود.
بیایید به یک مثال با استفاده از متد json.dump () نگاهی بیندازیم:
import json
# Data to be written
details = {
"name": "Felix Maina",
"years": 21,
"school": "Makerere"
}
# Serializing JSON and writing JSON file
with open("details.json", "w") as file_object:
json.dump(details, file_object) # {"name": "Felix Maina", "years": 21, "school": "Makerere"}
در اینجا، ما یک دیکشنری پایتون را به یک فایل فرمت JSON با نام details.json تبدیل می کنیم.
متد json.dumps () یک شی پایتون را به یک رشته JSON تبدیل می کند ، همانطور که در زیر نشان داده شده است:
import json
# Data to be written
details = {
"name": "Felix Maina",
"years": 21,
"school": "Makerere"
}
# Serializing JSON
json_string = json.dumps( details )
print( json_string ) #{"name": "Felix Maina", "years": 21, "school": "Makerere"}
# تغییر JSON به Object در پایتون
Deserialization فرآیند تبدیل داده های JSON به یک نوع داده بومی است. در اینجا، ما داده های JSON را به یک دیکشنری در پایتون تبدیل می کنیم.
ما از متد json.loads () برای تغییر داده های JSON به یک شی پایتون استفاده می کنیم. روش json.load () نیز برای تغییر یک قالب فرمت JSON به یک شی پایتون استفاده می شود.
مثال:
# importing the module
import json
# creating the JSON data as a string
data = '{"Name" : "Felix", "status" : "married"}'
print("data before deserailizing")
print(data) #json string
# deserailizing the data
h = json.loads(data)
print("data after deserailizing")
print(h) #python dictionary
Output:
# data before deserailizing
{"Name" : "Felix", "status" : "married"}
#data after deserailizing
{'status': 'married', 'Name': 'Felix'}
اجازه دهید یک فایل ایجاد کرده و نام آن را cars.json بگذارید. این فایل باید دارای اطلاعات زیر باشد:
{
"name": "Suzuki",
"year": 2001,
"model": "GDF10"
}
حالا بیایید با استفاده از تابع load () این فایل را از حالت طبیعی خارج کنیم:
import json
# opening the JSON file
data = open('cars.json','r')
print("Datatype before deserialization : ")
print(data) # prints the contents of the file
# deserailizing the data
h = json.load(data)
print("Datatype after deserialization : ")
print(h) # prints a python dictionary
ارسال نظر