
روز ۲۳ آموزش پایتون: کار با JSON و دادههای ساختاری
در دنیای برنامه نویسی مدرن، تقریباً هیچ پروژهای را نمیتوان پیدا کرد که با دادههای ساختاری سروکار نداشته باشد. از APIها گرفته تا فایلهای تنظیمات، از ذخیره اطلاعات کاربران تا ارتباط بین سرویسها، همهجا ردپای JSON دیده میشود. JSON بهعنوان یک فرمت سبک، خوانا و مستقل از زبان برنامهنویسی، به استانداردی جهانی برای تبادل داده تبدیل شده است. اگر بخواهی وارد دنیای پروژههای واقعی پایتون شوی، یادگیری JSON نه یک انتخاب، بلکه یک ضرورت است.
پایتون بهشکل پیشفرض ابزارهای بسیار قدرتمندی برای کار با JSON در اختیار ما قرار میدهد. این ابزارها باعث میشوند بتوانیم دادهها را از فایل بخوانیم، پردازش کنیم، تغییر دهیم و دوباره ذخیره کنیم، بدون اینکه نیاز به کتابخانههای اضافی داشته باشیم. در این درس، JSON را از دید کاملاً عملی بررسی میکنیم تا دقیقاً بدانی در پروژههای واقعی چطور از آن استفاده میشود و چرا اینقدر مهم است.
JSON چیست و چرا اینقدر محبوب است؟
JSON مخفف JavaScript Object Notation است، اما برخلاف اسمش محدود به جاوااسکریپت نیست. این فرمت در واقع راهی استاندارد برای نمایش دادههای ساختاریافته با استفاده از مفاهیمی شبیه به دیکشنری و لیست است. به همین دلیل، JSON برای برنامهنویسان پایتون بسیار آشنا و قابل فهم است. کلیدها و مقدارها، لیستها و ساختارهای تو در تو دقیقاً همان چیزهایی هستند که قبلاً با آنها کار کردهایم.
محبوبیت JSON به چند دلیل اصلی برمیگردد. اول اینکه خواندن آن برای انسان ساده است و حتی بدون ابزار خاصی میتوان ساختارش را فهمید. دوم اینکه تقریباً همه زبانهای برنامهنویسی از آن پشتیبانی میکنند. سوم اینکه حجم کمی دارد و برای انتقال داده در شبکه بسیار مناسب است. به همین دلایل، JSON به انتخاب اول برای APIها و ذخیرهسازی دادههای سبک تبدیل شده است.
ساختار JSON و شباهت آن به دیکشنریهای پایتون
اگر قبلاً با دیکشنریهای تو در تو در پایتون کار کرده باشی، JSON برایت کاملاً آشنا خواهد بود. در JSON، دادهها بهصورت جفت کلید و مقدار ذخیره میشوند و مقدارها میتوانند عدد، رشته، بولین، لیست یا حتی یک شیء دیگر باشند. همین شباهت باعث میشود تبدیل JSON به ساختارهای پایتونی بسیار ساده باشد و برعکس.
نمونهای ساده از داده JSON:
{
"name": "Ali",
"age": 28,
"skills": ["Python", "Django", "SQL"],
"active": true
}این ساختار تقریباً معادل یک دیکشنری در پایتون است. تنها تفاوت این است که در JSON از true و false استفاده میشود و رشتهها همیشه داخل کوتیشن قرار میگیرند.
خواندن فایل JSON در پایتون
برای کار با JSON در پایتون، از ماژول استاندارد json استفاده میکنیم. این ماژول به ما اجازه میدهد دادههای JSON را از فایل بخوانیم و آنها را به دیکشنری یا لیست پایتونی تبدیل کنیم. این مرحله معمولاً اولین کاری است که هنگام دریافت داده از API یا فایلهای تنظیمات انجام میدهیم. بعد از تبدیل، میتوانیم خیلی راحت با دادهها کار کنیم.
نمونه خواندن فایل JSON:
import json
with open("data.json", "r", encoding="utf-8") as file:
data = json.load(file)
print(data)
print(data["name"])در این مثال، فایل JSON خوانده شده و محتوای آن به یک دیکشنری پایتونی تبدیل میشود. از این لحظه به بعد، میتوانیم مثل یک دیکشنری معمولی با دادهها کار کنیم و هیچ تفاوتی احساس نکنیم.
نوشتن داده در فایل JSON
علاوه بر خواندن، خیلی وقتها نیاز داریم دادهها را در قالب JSON ذخیره کنیم. این کار برای ذخیره تنظیمات برنامه، اطلاعات کاربران یا خروجی پردازشها بسیار رایج است. پایتون این کار را هم با همان ماژول json و بهسادگی انجام میدهد. تنها کافی است دادههای پایتونی خودمان را به JSON تبدیل کنیم و در فایل بنویسیم.
نمونه نوشتن در فایل JSON:
import json
user = {
"name": "Sara",
"age": 24,
"skills": ["Python", "Data Analysis"],
"active": True
}
with open("user.json", "w", encoding="utf-8") as file:
json.dump(user, file, ensure_ascii=False, indent=4)در این مثال، دیکشنری user بهصورت JSON در فایل ذخیره میشود. استفاده از indent باعث میشود فایل خواناتر شود و ensure_ascii=False اجازه میدهد حروف فارسی بهدرستی ذخیره شوند.
کار با دادههای JSON در پروژههای واقعی
در پروژههای واقعی، JSON معمولاً بهتنهایی استفاده نمیشود، بلکه بخشی از یک سیستم بزرگتر است. برای مثال، وقتی از یک API داده دریافت میکنی، پاسخ معمولاً بهصورت JSON است. تو باید این داده را بخوانی، پردازش کنی و شاید بخشی از آن را ذخیره یا نمایش دهی. دانستن اینکه چطور به دادههای تو در تو دسترسی پیدا کنی، در اینجا بسیار مهم میشود.
نمونه دسترسی به دادههای تو در تو:
data = {
"users": [
{"username": "ali", "email": "ali@test.com"},
{"username": "sara", "email": "sara@test.com"}
]
}
for user in data["users"]:
print(user["username"], user["email"])این الگو دقیقاً همان چیزی است که هنگام کار با APIها استفاده میکنی. اگر این ساختار را خوب بفهمی، کار با سرویسهای خارجی برایت بسیار ساده خواهد شد.
جمعبندی کار با JSON در پایتون
JSON یکی از مهمترین ابزارها برای کار با دادههای ساختاری در پایتون است. در این درس یاد گرفتیم JSON چیست، چرا محبوب است و چطور میتوان آن را در پایتون خواند و نوشت. همچنین دیدیم که ساختار JSON شباهت زیادی به دیکشنریها و لیستهای پایتون دارد و همین موضوع کار با آن را بسیار ساده میکند. این مهارت پایهای برای ورود به دنیای APIها، پروژههای وب و حتی تحلیل داده محسوب میشود.
اگر بخواهی تمرین کنی، پیشنهاد میشود یک برنامه ساده بنویسی که اطلاعات کاربران را در قالب JSON ذخیره کند و امکان خواندن و ویرایش آنها را بدهد. این تمرین تو را برای پروژههای بزرگتر آماده میکند و باعث میشود JSON برایت به یک ابزار کاملاً عادی و روزمره تبدیل شود.
