Shanraq.org Shanraq.org
Тапсырмаларды JSON пішімінде сақтау
Қоғам

Информатика: өз цифрлық көмекшімізді жасаймыз 35-сабақ (барлығы 38)

Тапсырмаларды JSON пішімінде сақтау

Тапсырмаларды JSON-ға сақтап, 0.2 пішімінен 1.0-ге ашық көшіп, қазақша мәтіннің бағдарлама жабылғаннан кейін де қалуын тексереміз.

Картадағы орнымыз

Бұл 72 сабақтың 35-сі, Python блогының (27–38) бөлігі. Тірек сызба тексерілетін өтулерді көрсетеді. 0.3 қағаз келісіміндегі еске салудың бес нәтижесі мен ойдан алынған бастапқы тапсырмаларды жалғастырамыз.

Тапсырмаларды JSON пішімінде сақтау

Жағдай және сұрақ

Осы кезге дейін done=True бағдарлама жабылғанда жоғалатын. Енді файл керек, бірақ жазу үзілуі мүмкін, ал ескі тапсырмаларда күн өрісі жоқ. Өрісті үнсіз қосып, бұрыннан болғандай айту келісімнің ауысуын жасырады. Екі пішімді салыстырып, жазу–қайта оқу–тексеру жолын өтеміз.

Жаңа сөздерді анық түсінейік

JSON — объект, массив, жол, сан, true, false, null сақтайтын мәтіндік пішім. Python-да оларға сөздік, тізім, str, сан, True, False, None сәйкес. Сериялау Python құрылымын json.dump не json.dumps арқылы JSON мәтініне аударады; талдау json.load арқылы кері орындайды. Сызба нұсқасы қандай өріс жарамды екенін айтады. 0.2-де мерзім жоқ; 1.0-де due_date ISO күнін не null сақтайды. Тұтас ауыстыру жаңа файлды уақытша көршісіне жазып, кейін ескісін алмастырады; бұл жартылай жазу қаупін азайтады, бірақ сақтық көшірмені алмастырмайды.

Сабақтың тірек сигналы

Кіріс → ережені тексеру → күйді өзгерту → бақыланатын нәтиже. Бағдарлама қай жерде деректі оқитынын, келісіммен салыстыратынын және қай жерде тек хабарлайтынын көрсетіңіз. Қадам сызбада көрінбесе, кодтан тауып, өз трассаңызға қосыңыз.

Қадамдап талдаймыз

«Әліппе оқу» атауы бар қысқа мысалды іске қосыңыз: ensure_ascii=False JSON мәтінінде әріпті оқылатын күйде қалдырады. json.loads құрылымды қайтарады, атауды салыстыру толық айналымды растайды. Ескі step-01/data/tasks.json файлын ашыңыз: үш тапсырма мен 0.2 нұсқасы бар. Жұмыс көшірмесінде сол үш id, атау, done мәнін сақтап, нұсқаны 1.0 етіп, әрқайсына due_date ретінде ойдан алынған күн не null жазыңыз. Ескі жазбаға талапсыз күн ойлап қоспаңыз.

Болжаңыз және тексеріңіз

Нәтиже блогын жабыңыз. Атаулар мәнін жол сайын бақылап, әріп регистрі мен жол ретін қоса нақты мәтінді болжаңыз. Содан кейін ғана кодты step-03 каталогында python3 арқылы орындап, таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, іске қоспай тұрып жаңа болжам жазыңыз. Айырма болса, жауабыңызды кейін ыңғайламай, алғашқы ауытқыған жолды табыңыз.

import json
item = {"title": "Әліппе оқу", "done": False}
encoded = json.dumps(item, ensure_ascii=False)
print(encoded)
print(json.loads(encoded)["title"])

Күтілетін нәтиже

{"title": "Әліппе оқу", "done": false}
Әліппе оқу

Қатені табыңыз

tasks.txt атауын tasks.json ету мазмұнды дұрыс JSON қылмайды. Файл ішіндегі жалқы тырнақша мен True де JSON-ға жарамайды: қос тырнақша мен true керек. Файл кеңейтіміне ғана қарамай, json.load арқылы оқуды, өрістерді және жазғаннан кейін қайта оқуды тексеріңіз.

Жобаға енгізілетін өзгеріс

load_document әуелі файлды толық тексеріп, содан соң деректі береді. save_document тек тексерілген 1.0 нұсқасын уақытша файлға жазып, нысананы алмастырады. Ескі 0.2 оқылады, бірақ өзгеріс оны ашық түрде 1.0-ге көшіреді.

Тапсырма және дәлел

0.2 бастапқы файлын көшіріп, көшірмеде жаңа id мен мерзім беріп add іске қосыңыз, кейін list және reminders --today 2026-10-09 орындаңыз. Ескі үш жазбаның id, title, done мәнін дәл салыстырыңыз: олар сақталуы тиіс. Ескі мерзімдер null, жаңа жазбада сіздің күніңіз бар. Файлды бағдарламада қайта ашып, нәтиже өзгермегенін тексеріңіз.

Жаңа жағдайға көшіру

Мектеп үйірмесіне «аудитория» деген жаңа өріс қосылды. Бұрынғы барлық кездесу 101-бөлмеде өтті деп үнсіз жаза аламыз ба? Ойдан алынған бөлмеден null неге адалырақ және қашан жаңа пішім нұсқасы керек?

1, 7 және 30 күннен кейін қайталау

1 күннен кейін бетті ашпай ереже мен бір шекара мысалын еске түсіріңіз. 7 күннен кейін жаңа мысалдағы қатені сыныптасыңызға түсіндіріңіз. 30 күннен кейін жоба тестін қайталап, бұрынғы жазба мен нәтиженің сақталғанын тексеріп, ережені өзге міндетке қолданыңыз.

Келесі сабақ

Келесі: Қате бақыланатын дерек ретінде

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Жоба дәлелін тексеру

Бақылауды, түсіндіруді, қатені түзетуді және жобаңыздағы өзгерісті жазыңыз. Модель алғашқы шатасқан немесе дәлелденбеген байланысты көрсетеді, бірақ дайын жауапты бермейді.

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.