حافظه موقت است
متغیرهای برنامه بعد از تمام شدن اجرای محلی باقی نمیمانند. فایل برای نگهداشتن اطلاعات است. JSON یک قالب متنی برای دادههای ساده مثل لیست و دیکشنری است. ما داده را به متن JSON تبدیل میکنیم، در فایل مینویسیم و بعد متن را دوباره به داده پایتون برمیگردانیم.
یک بار بنویس، دوباره بخوان
فایل خریدها
عنوان خرید را تغییر بده؛ متن JSON و داده خواندهشده را مقایسه کن.
import json
from pathlib import Path
expenses = [{"title": "دفتر", "amount": 45000}]
path = Path("expenses.json")
text = json.dumps(expenses, ensure_ascii=False, indent=2)
path.write_text(text, encoding="utf-8")
loaded = json.loads(path.read_text(encoding="utf-8"))
print(text)
print(loaded[0]["title"])یک راهنمایی میخواهم
ensure_ascii=False خواندن متن فارسی را راحتتر میکند.
راهنمایی بیشتر
json.loads متن را به مقدار پایتون تبدیل میکند.
import ابزار آماده را وارد برنامه میکند. json و pathlib همراه پایتون هستند؛ نصب جدا نمیخواهند. Path مسیر فایل را نمایندگی میکند. UTF-8 برای نوشتن و خواندن متن فارسی مشخص شده است. write_text فایل موجود را جایگزین میکند؛ برای اطلاعات مهم اول نسخه پشتیبان بگیر.
فقط خطایی را بگیر که میفهمی
متن نامعتبر را تشخیص بده
raw_amount را بین "45000" و "abc" عوض کن.
raw_amount = "abc"
try:
amount = int(raw_amount)
if amount <= 0:
print("مبلغ باید مثبت باشد")
else:
print(f"مبلغ ثبتشدنی: {amount}")
except ValueError:
print("مبلغ را با رقم وارد کن؛ مثلاً 45000")یک راهنمایی میخواهم
int("abc") خطای ValueError میدهد.
راهنمایی بیشتر
except را همسطح try بنویس.
try کدی را اجرا میکند که احتمال خطای مشخص دارد. except ValueError همین خطای تبدیل را مدیریت میکند. همه خطاها را بیصدا نادیده نگیر. برای خطای ناشناخته، پیام را از آخر بخوان: نوع خطا، توضیح و شماره خط کمک میکنند محل مشکل را پیدا کنی. تمرین: صفر و منفی ۵ را امتحان کن؛ باید پیام مبلغ مثبت را ببینی.
