جیسون (JSON) برای پایتون
کلمه JSON مخفف JavaScript Object Notation و به معنای نشانه گذاری شی جاوا اسکریپت است. این واژه جهت ذخیره سازی و یا تبادل اطلاعات به کار گرفته می شود. جیسون قالبی سبک وزن و استاندارد، جهت ذخیره سازی و انتقال داده ها است. شما با چنین فرمتی می توانید، اطلاعات را در قالب متن جا به جا نمایید و حتی آن ها را بیرون از شبکه هم انتقال دهید. این فایل ها هم برای کامپیوترها و هم برای انسان ها خوانایی دارند. جهت آشنایی بیشتر با جیسون برای پایتون در ادامه همراه ما باشید:
بیشتر بخوانید: جیسون (json) چیست؟
تجزیه داده های جیسون در پایتون
1 ) پایتون JSON
ماژول جیسون که به شما امکان رمزگشایی و رمزگذاری داده های جیسون (JSON) را می دهد، قسمتی از کتابخانه استاندارد پایتون (Python) است. در اصل جیسون رشته ای است که داده را نشان می دهد. رمز گذاری به معنی تبدیل کردن یک شیء پایتون به یک رشته جیسون است، که در یک فایل می تواند ذخیره شود، و یا از طریق شبکه انتقال یابد. رمزگشایی و یا جداسازی مجدد روند معکوس رمزگذاری در جایی است که یک رشته جیسون، به شیء پایتون تبدیل می گردد. برای کار با جیسون، باید ماژول را در بالای پرونده وارد نمایید:
Import json
2) رمزگذاری جیسون (JSON) در پایتون
ماژول جیسون جهت رمزگذاری اشیاء پایتون در رشته های با فرمت جیسون دارای دو روش dump () و dumps () است.
روش dump () خروجی را به یک شیء مثل پرونده می فرستد. دو آرگومان موقعیتی، طول خواهد کشید: برای مثال:
Data = {
“country”: “Germany”,
“vehicle”: {
“name”: “Volkswagen”,
“model”: “T-Roc”
}
}
With open(“file.json”, “w”) as file:
Json.dump(data, file)
اگر اسکریپت را اجرا نمایید، پرونده ای به اسم file.json ایجاد می کند.
{“country”: “Germany”, “vehicle”: {“name”: “Volkswagen”, “model”: “T-Roc”}}
روش dumps () مانند روش dump () کار می کند اما به جای ارسال خروجی به یک شیء مثل پرونده، یک رشته را باز می گرداند.
Data = {
“country”: “Germany”,
“vehicle”: {
“name”: “Volkswagen”,
“model”: “T-Roc”
}
}
Json.dumps(data)
‘{“country”: “Germany”, “vehicle”: {“name”: “Volkswagen”, “model”: “T-Roc”}}’
هر دو روش آرگومان کلمه های کلیدی را قبول می کنند. برای مثال اگر داده جیسون را تجزیه، تحلیل و یا اشکال زدایی می کنید، می توانید سطح تو رفتگی را مشخص نمایید:
Data = {
“country”: “Germany”,
“vehicle”: {
“name”: “Volkswagen”,
“model”: “T-Roc”
}
}
Print(json.dumps(data, indent=2))
{
“country”: “Germany”,
“vehicle”: {
“name”: “Volkswagen”,
“model”: “T-Roc”
}
}
3) رمز گشایی جیسون (JSON) در پایتون
جهت تبدیل داده های رمزگذاری شده جیسون به اشیاء پایتون، باید از روش های load () و loads () استفاده کنید. روش load ()، ساختار JSON را از یک شیء مثل پرونده می خواند و آن را به یک شیء پایتون، تبدیل می کند.
شما پرونده JSON زیر را دارید:
[
{ “userId”: 1,
“id”: 1,
“title”: “Meet with Lisa”,
“completed”: true
},
{
“userId”: 1,
“id”: 2,
“title”: “Design a prototype”,
“completed”: false
}
]
جهت تبدیل داده های جیسون به نمایندگی پایتون، از چیزی شبیه به این استفاده کنید:
Import json
With open(‘file.json’) as f:
Data = json.load(f)
Type(data)
جیسون به لیست پایتون تبدیل شده است که در کد خود از آن می توانید استفاده کنید:
<class ‘list’>
روش loads()، رشته ای را که یک سند جیسون دارد، به یک موضوع پایتون تبدیل می نماید:
Import json
Json_str= ‘{“userId”: “1”, “id”: “1”, “title”: “Meet with Lisa”,
“completed”: “True”}’
Print(json.loads(json_str))
در اینجا رشته، به یک فرهنگ لغت پایتون تبدیل شده است:
{ ‘userId’: ‘1’, ‘I d’: ‘1’, ‘title’: ‘Meet with Lisa’, ‘completed’: ‘True’ }
در اینجا یک مثال پیشرفته تر وجود دارد که نشان می دهد چگونه یک درخواست api را می توانید تهیه کنید و داده های جیسون را رمزگشایی نمایید.
Import json
Import requests
Response = requests.get(https://jsonplaceholder.typicode.com/users)
Users = json.loads(response.text)
یادگیری جیسون Json در پایتون
برای این که بتوانید از جیسون json در پایتون استفاده کنید، لازم است آن را در سیستم خود نصب کنید. جهت انجام این کار کافی است دستور زیر را در ترمینال لینوکس یا اگر ویندوز دارید در CMD بزنید.
در لینوکس
Sudo su –
Pip install json
در ویندوز :
کافی است به منوی run بروید، سپس کلمه ی cmd را سرچ کنید و دستور زیر را داخل آن پست کنید :
Pip install json
برای استفاده از json نیاز آن را import کنید:
Import json
حالا باید از آن استفاده کنید. نیاز است یک فایل json بسازید و با پایتون آن را بخوانید. جهت ساخت آن باید مراحل زیر را طی کنید:
With open("./Lins.json" , mode=’r’) as open_file :
Data = open_file.read()
Print(json.loads(data)[‘app’][‘Fristname’]
در مرحله اول باید وارد فایل جیسون که ساخته شده اید، شوید و در مرحله دوم mode را == با r قرار می دهیم؛ یعنی می خواهید فایل را بخوانید. پس از آن به سراغ یک متغیر می روید. می توانستید بدون with هم بنویسید. ولی با with بهتر است؛ زیرا خودش وقتی کار تمام شود فایل را close می کند. سپس در خط دوم، یک متغیر تعریف کنید و open_file.read () را فراخوانی نمایید تا بتوانید محتویات فایل را بخوانید. در خط بعدی با استفاده از loads در کتابخانه ای json متن str را که خوانده اید به آن نشان می دهید. سپس به آن می گویید از اپ Fristname را بخوانید. سپس Fristname را که در فایل قرار دارد، می خواند و نشان می دهد.
تابع read برای خواندن فایل جیسون در پایتون
تابع read روی متغیر شیء فایل صدا زده می شود. خروجی آن یک رشته متنی بزرگ، حاوی تمام محتویات فایل شما است.
File = open(file_name)
Print( file.read() )
# dear user,
# This is a test file!
# visit us at douran.academy
باید توجه کنید که اگر این تابع را دو بار پشت سر هم صدا بزنید، در بار دوم، هیچ مقداری برای شما چاپ نمی شود؛ به دلیل این که تمام فایل، تا انتها بررسی و خوانده شده است و دیگر محتوای بیش تری برای نمایش ندارید. تابع read() می تواند یک آرگومان ورودی به صورت دل خواه داشته باشد؛ این آرگومان از نوع عددی است و مشخص می کند که چه تعداد کاراکتر خوانده شود.
File = open(file_name)
Print( file.read(7) )
# dear us
پیشنهاد می کنیم این دوره آموزشی را از دست ندهید: دوره آموزش پیشرفته Python ( آموزش پیشرفته پایتون )
کلام آخر
در این مقاله تجزیه داده های JSON در پایتون و چگونگی خواندن فایل برای شما توضیح داده شد. امید است که این محتوای آموزشی برای شما کار آمد تلقی شود.
دیدگاهتان را بنویسید