جلسه سی و هشتم

کنترل خطاها و استثنائات

JSON (JavaScript Object Notation) یک قالب داده‌ای متنی است که به طور گسترده‌ای برای تبادل داده‌ها در محیط‌های وب و برنامه‌نویسی استفاده می‌شود. در پایتون، ین داده‌ها را به راحتی دریافتبرای کار با داده‌های JSON از ماژول `json` استفاده می‌شود.

برخی از کاربردهای JSON در پایتون عبارتند از:

1. **خواندن و نوشتن فایل‌های JSON**: با استفاده از ماژول `json` می‌توان فایل‌های JSON را خواند و داده‌های آن را به شکل پایتونی در حافظه بارگذاری کرد. همچنین می‌توان داده‌های پایتونی را به قالب JSON ذخیره کرد.

2. **ارسال و دریافت داده‌ها از API‌ها**: بسیاری از API‌ها داده‌های خود را به صورت JSON ارائه می‌دهند. با استفاده از ماژول `json` می‌توان این داده‌ها را به راحتی دریافت و تحلیل کرد.

3. **ذخیره و بازیابی تنظیمات**: JSON به خوبی برای ذخیره تنظیمات برنامه‌ها مناسب است. می‌توان تنظیمات را به صورت JSON ذخیره کرده و در زمان اجرای برنامه آن‌ها را بازیابی کرد.

4. **تبادل داده‌ها بین برنامه‌ها**: JSON به عنوان یک قالب داده‌ای استاندارد، امکان تبادل داده‌ها بین برنامه‌های مختلف را فراهم می‌کند.

 

ماژول json به شما این امکان را می دهد که ساختارهای داده ساده پایتون را در یک فایل تخلیه کنید و دفعه بعد که برنامه اجرا می شود، داده ها را از آن فایل بارگیری کنید. فرمت داده‌های JSON مختص پایتون نیست، بنابراین می‌توانید این نوع داده‌ها را با افرادی که به زبان‌های دیگر کار می‌کنند نیز به اشتراک بگذارید.

دانستن نحوه مدیریت استثناها هنگام کار با داده های ذخیره شده مهم است. معمولاً می خواهید قبل از کار با داده هایی که می خواهید بارگیری کنید، مطمئن شوید که وجود دارد.

مثال 1: استفاده از json.dump() برای ذخیره داده ها.

				
					"""Store some numbers."""
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
    json.dump(numbers, f_obj)
				
			

این برنامه پایتون مجموعه‌ای از اعداد را در یک فایل JSON ذخیره می‌کند. به طور کلی، برنامه به شرح زیر عمل می‌کند:

در ابتدا، یک لیست از اعداد با مقادیر `[2, 3, 5, 7, 11, 13]` تعریف شده است. نام فایل که قرار است داده‌ها در آن ذخیره شود، به عنوان متغیر `filename` تعریف شده است. برنامه با استفاده از بلوک `with open(filename, ‘w’) as f_obj:` یک فایل با نام `numbers.json` در حالت نوشتن (write) باز می‌کند. سپس با استفاده از تابع `json.dump()` از ماژول `json`، مجموعه اعداد در لیست `numbers` به قالب JSON تبدیل و در فایل ذخیره می‌شود.

به طور خلاصه، این برنامه یک لیست از اعداد را در یک فایل JSON به نام `numbers.json` ذخیره می‌کند. این نوع ذخیره‌سازی به‌ویژه زمانی مفید است که می‌خواهید داده‌های ساختاریافته را به صورت فایل ذخیره کنید و در آینده بتوانید به آن‌ها دسترسی پیدا کنید.

مثال 2: استفاده از json.load() برای خواندن داده ها.

				
					"""Load some previously stored numbers."""
import json
filename = 'numbers.json'
with open(filename) as f_obj:
    numbers = json.load(f_obj)
print(numbers)
				
			

مثال3: اطمینان از وجود داده های ذخیره شده(با استفاده از کنترل خطا)

				
					import json
f_name = 'numbers.json'
try:
    with open(f_name) as f_obj:
        numbers = json.load(f_obj)
except FileNotFoundError:
    msg = "Can’t find {0}.".format(f_name)
    print(msg)
else:
    print(numbers)