از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه JSON را به یک شی پایتون تبدیل کنیم
سرفصلهای مطلب
معرفی
در دنیای برنامه نویسی، داده ها اغلب در قالب های مختلف ذخیره می شوند و به قسمت های دیگر برنامه یا سایر سرویس های وب منتقل می شوند. برای تسهیل انتقال داده بین سرویس هایی که به زبان ها و فریم ورک های مختلف نوشته شده اند (مانند پشتیبانی جاوا که با یک سرویس پایتون ارتباط برقرار می کند و نتایج را به فرانت اند جاوا اسکریپت می فرستد)، فرمت های رایجی امتحان، آزمایش و پذیرفته شده اند.
یکی از متداول ترین فرمت های تبادل داده استفاده می شود JSON (نشانگذاری شی جاوا اسکریپت)
این برای انسان قابل خواندن، بصری، کارآمد و سریع است و با ظهور جاوا اسکریپت به سرعت به عنوان استاندارد واقعی برای فرمت های تبادل داده تبدیل شد. روی وب.
تبدیل بین اشیاء JSON و Python مفید است زیرا به برنامه های پایتون اجازه می دهد با داده های منابع خارجی یا API های وب که از فرمت JSON استفاده می کنند کار کنند. JSON یک فرمت تبادل داده سبک وزن است که به استاندارد بسیاری از API های مبتنی بر وب تبدیل شده است و آن را به گزینه ای محبوب برای تبادل داده بین برنامه های کاربردی وب تبدیل می کند.
پایتون یک زبان برنامه نویسی قدرتمند است که مجموعه ای غنی از ساختارهای داده و ابزارهای دستکاری را فراهم می کند که می توان از آنها برای process و داده های JSON را به روش های مختلف تجزیه و تحلیل کنید. به عنوان مثال، لغت نامه ها و لیست های داخلی پایتون را می توان برای ذخیره و دستکاری اشیا و آرایه های JSON به روشی طبیعی استفاده کرد، در حالی که json
ماژول روش هایی را برای سریال سازی و سریال زدایی داده های JSON به و از اشیاء پایتون ارائه می دهد.
برعکس، تبدیل اشیاء پایتون به JSON زمانی مفید است که دادهها بین سیستمها یا برنامههای مختلفی که ممکن است در پایتون نوشته نشده باشند، منتقل شوند. JSON یک فرمت با پشتیبانی گسترده است که می تواند توسط بسیاری از زبان های برنامه نویسی خوانده و نوشته شود و آن را به گزینه ای انعطاف پذیر برای تبادل داده تبدیل می کند.
به طور کلی، توانایی تبدیل بین اشیاء JSON و Python یک مهارت ضروری برای هر توسعه دهنده Python است که با API های وب یا منابع داده خارجی کار می کند. این به آنها اجازه می دهد تا با داده ها به روشی طبیعی و شهودی کار کنند، در حالی که هنوز با سیستم ها و زبان های دیگر قابل همکاری هستند.
در این مقاله، روش تبدیل JSON به شی پایتون را بررسی خواهیم کرد.
تبدیل JSON به اشیاء پایتون
پایتون یک داخلی ارائه می دهد json
ماژولی که تبدیل داده های JSON به اشیاء پایتون را آسان می کند. را json.loads()
تابع برای بارگذاری داده های JSON از یک رشته و تبدیل آن به یک شی پایتون مربوطه استفاده می شود:
import json
json_string = '{"name": "John Doe", "age": 30, "is_student": false}'
python_obj = json.loads(json_string)
print(python_obj)
در این مثال ابتدا ما import را json
مدول. سپس یک رشته JSON نمونه تعریف می کنیم و آن را در متغیر ذخیره می کنیم json_str
.
برای تبدیل رشته JSON به یک شی پایتون، از عبارت استفاده می کنیم json.loads()
تابعی که یک رشته JSON را به عنوان ورودی می گیرد و یک شی پایتون مربوطه را برمی گرداند. ما شی پایتون به دست آمده را در متغیر ذخیره می کنیم python_obj
.
بالاخره ما print شی پایتون با استفاده از print()
تابع. خروجی به شکل زیر خواهد بود:
{'name': 'John Smith', 'age': 35, 'is_student': False}
توجه داشته باشید که مقدار بولی JSON false
به یک مقدار بولی پایتون تبدیل می شود False
. به طور مشابه، JSON null
مقدار به پایتون تبدیل می شود None
.
درک کردن json.loads() تابع
را json.loads()
تابع یک رشته JSON را به عنوان ورودی می گیرد و یک شی پایتون مربوطه را برمی گرداند.
توجه داشته باشید:: این یک تصور اشتباه رایج است که نام روش است “بارها”، مانند زمان حال ساده “بار”. در واقع نام متد کوتاه است “رشته بارگذاری”، منعکس کننده این واقعیت است که قرار است با فرمت رشته بارگیری شود و ارائه نام فایل کار نخواهد کرد. را load()
روش با نام فایل ها کار می کند.
همچنین میتواند پارامترهای دیگری را برای سفارشیسازی رفتار تبدیل به خود اختصاص دهد process. در اینجا چند نکته مهم در مورد این تابع وجود دارد:
- الف را بالا می برد
ValueError
استثنا اگر رشته ورودی JSON معتبر نباشد. - می تواند یک پارامتر دوم را بگیرد
object_hook
که تابعی است که می تواند شی رمزگشایی شده را تغییر دهد. این تابع برای هر شی JSON رمزگشایی شده فراخوانی می شود و شی تغییر یافته را برمی گرداند. راobject_hook
تابع را می توان برای تجزیه شی JSON به روش سفارشی استفاده کرد. - را
json.loads()
تابع همچنین چندین پارامتر اختیاری دیگر را می پذیرد که می توانید در اسناد پایتون در مورد آنها مطالعه کنید.
رسیدگی به خطاها
رسیدگی به خطاها هنگام تبدیل JSON به اشیاء پایتون برای جلوگیری از خراب شدن برنامه شما در صورتی که داده های ورودی JSON معتبر نیستند، مهم است. را json.loads()
روش الف را بالا می برد ValueError
استثنا اگر رشته ورودی JSON معتبر نباشد، بنابراین باید فراخوانی متد را در a بپیچید try-except
برای گرفتن این استثنا و مدیریت مناسب آن را مسدود کنید.
در اینجا مثالی از روش رسیدگی به خطاها هنگام تبدیل JSON به اشیاء پایتون آورده شده است:
import json
json_str = '{"name": "John", "age": 30, "city": "New York"'
try:
python_obj = json.loads(json_str)
print(python_obj)
except ValueError as e:
print("Error:", e)
در این مثال، ما عمداً با حذف بریس بسته شدن در انتهای شی، خطایی را به رشته JSON وارد می کنیم. وقتی سعی می کنیم رشته را به یک شی پایتون تبدیل کنیم، json.loads()
روش الف را بالا می برد ValueError
استثنا. ما این استثنا را با استفاده از a می گیریم try-except
بلوک، و print یک پیام خطا به console.
تبدیل اشیاء پایتون به JSON
علاوه بر تبدیل داده های JSON به اشیاء پایتون، json
ماژول در پایتون همچنین راهی برای تبدیل اشیاء پایتون به داده های JSON ارائه می دهد. این می تواند هنگام کار با API های وب که نیاز به ارسال داده در قالب JSON دارند یا هنگام ذخیره داده ها در یک فایل JSON مفید باشد.
برای تبدیل یک شی پایتون به دادههای JSON، میتوانیم از json.dumps()
تابع، که یک شی پایتون را به عنوان ورودی می گیرد و یک رشته با فرمت JSON را برمی گرداند.
توجه داشته باشید: تقریباً به همین شکل loads()
کوتاه است برای “رشته بارگذاری”، dumps()
کوتاه است برای “dump رشته”.
به عنوان مثال:
import json
python_obj = {
"name": "John",
"age": 30,
"city": "New York"
}
json_str = json.dumps(python_obj)
print(json_str)
در این مثال یک دیکشنری پایتون تعریف می کنیم python_obj
که حاوی همان داده های رشته JSON است که در مثال قبلی استفاده کردیم. سپس از json.dumps()
تابع تبدیل شی پایتون به رشته ای با فرمت JSON که در آن ذخیره می کنیم json_str
متغیر. بالاخره ما print رشته JSON به console.
خروجی این برنامه باید یک رشته JSON به شکل زیر باشد:
{"name": "John", "age": 30, "city": "New York"}
به طور پیش فرض، json.dumps()
تابع یک رشته JSON فشرده بدون فضای خالی اضافی تولید می کند. با این حال، ما می توانیم فرمت خروجی رشته JSON را با استفاده از پارامترهای زیر کنترل کنیم:
indent
: این پارامتر تعداد فضاهای استفاده شده برای تورفتگی را کنترل می کند. اگرindent
بر روی یک عدد صحیح غیر منفی تنظیم می شود، خروجی با آن تعداد فاصله در هر سطح تورفتگی فرمت می شود. اگرindent
تنظیم شده استNone
(به طور پیش فرض)، خروجی فشرده و بدون فضای خالی اضافی خواهد بود.sort_keys
: این پارامتر کنترل می کند که آیا کلیدهای خروجی در رشته JSON باید بر اساس حروف الفبا مرتب شوند یا خیر. اگرsort_keys
تنظیم شده استTrue
، کلیدهای خروجی مرتب خواهند شد. اگرsort_keys
تنظیم شده استFalse
(به طور پیش فرض)، کلیدهای خروجی به ترتیبی هستند که درج شده اند.
در اینجا یک مثال است که از آن استفاده می کند indent
پارامتر برای تولید یک رشته JSON با چاپ زیبا:
import json
python_obj = {
"name": "John",
"age": 30,
"city": "New York"
}
json_str = json.dumps(python_obj, indent=4)
print(json_str)
در این مثال، ما را تنظیم کردیم indent
پارامتر به 4
، که باعث می شود خروجی با چهار فاصله در هر سطح تورفتگی تورفتگی داشته باشد. خروجی این برنامه باید یک رشته JSON با چاپ زیبا باشد که به شکل زیر است:
{
"name": "John",
"age": 30,
"city": "New York"
}
بهترین شیوه ها
هنگام کار با دادههای JSON در پایتون، رعایت برخی از بهترین روشها برای اطمینان از اینکه دادهها به درستی تبدیل شده و در برنامه استفاده میشوند، مهم است. در اینجا برخی از بهترین روشهایی که باید هنگام کار با دادههای JSON در پایتون در نظر بگیرید، آورده شده است.
داده های JSON را اعتبارسنجی کنید
قبل از تلاش برای تبدیل دادههای JSON به اشیاء پایتون، مهم است که دادهها را اعتبارسنجی کنید تا مطمئن شوید که به خوبی شکل گرفتهاند و حاوی هیچ خطایی نیستند. این کار را می توان با استفاده از ابزارهای آنلاین یا کتابخانه هایی که به طور خاص برای اعتبارسنجی JSON طراحی شده اند، انجام داد jsonschema
کتابخانه در پایتون
خطاها و استثناها را مدیریت کنید
هنگام کار با داده های JSON، مهم است که خطاها و استثناها را به درستی مدیریت کنید. این کار را میتوان با استفاده از مکانیزمهای داخلی مدیریت خطای پایتون، مانند بلوکهای try-except، برای رسیدگی به خطاهایی که ممکن است در طول تبدیل رخ دهد، انجام داد. process.
از انواع داده های مناسب استفاده کنید
هنگام تبدیل دادههای JSON به اشیاء پایتون، استفاده از انواع دادههای مناسب برای اطمینان از نمایش دقیق دادهها در برنامه مهم است. به عنوان مثال اطمینان از اینکه اعداد JSON به عنوان اشیاء شناور پایتون یا int و رشته های JSON به عنوان اشیاء رشته پایتون نمایش داده می شوند.
محدودیت های فرمت JSON را درک کنید
در حالی که JSON یک فرمت داده پرکاربرد است، اما محدودیت هایی دارد. به عنوان مثال، از انواع خاصی از داده ها، مانند datetime یا داده های باینری پشتیبانی نمی کند. در برخی موارد، ممکن است لازم باشد برخی از فیلدها را در یک نوع داده خاص سریال کنید و بعداً آن را تجزیه کنید.
نتیجه
در نتیجه، JSON یک فرمت داده پرکاربرد است که برای تبادل داده بین زبانها و پلتفرمهای برنامهنویسی مختلف محبوب است. در پایتون، داخلی json
ماژول یک راه ساده و موثر برای تبدیل داده های JSON به اشیاء پایتون و بالعکس ارائه می دهد.
با پیروی از بهترین روش هایی که در این مقاله بیان کرده ایم، مانند اعتبارسنجی داده های JSON، مدیریت خطاها و استثناها، استفاده از انواع داده های مناسب، و درک محدودیت ها و موارد استفاده از داده های JSON، توسعه دهندگان می توانند به طور موثر با داده های JSON در پایتون خود کار کنند. برنامه های کاربردی. خواه با API های وب کار می کنید، ذخیره داده ها یا تبادل داده ها، درک روش تبدیل JSON به اشیاء پایتون یک مهارت مهم برای هر برنامه نویس پایتون است.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-01 18:28:02