JSON یک قالب متنی برای ذخیره و جابهجایی دادههاست. میتونه لیست، دیکشنری با کلید متنی، متن، عدد، مقدار درست/نادرست و null رو نگه داره. برای ذخیره یک شیء مثل Task، اول باید اطلاعات لازم اون رو به دادههای ساده، مثلاً یک دیکشنری، تبدیل کنیم.
dumps: داده رو به متن JSON تبدیل میکنه.loads: متن JSON رو دوباره به داده تبدیل میکنه.dumpوload: همین کارها رو با فایل انجام میدن.
تابع رو بنویس: ورودی، لیست دیکشنریهای معتبر با title رشتهای و done بولی هست. اون رو با ensure_ascii=False به متن JSON تبدیل کن، همون متن رو بارگذاری کن، بعد عنوان کارهای باز رو به ترتیب برگردون. ensure_ascii=False خوانایی فارسی رو بهتر میکنه؛ هر دو حالت در بارگذاری دوباره دادهٔ یکسانی میدن.
در فایل واقعی json.load ممکنه json.JSONDecodeError بده. حتی JSON معتبر هم باید از نظر ساختار و نوع داده بررسی بشه؛ دیکشنری بودن یا وجود title تضمینشده نیست.
فعالیت شما
داده رو به متن JSON تبدیل کن، دوباره بخونش و عنوان کارهای انجامنشده رو برگردون.