Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Модули за сериализация
JSON модул

Цел

Отправете се към сервизната станция и се уверете, че данните са правилно съхранени, като използвате JSON модула за форматиране на файловете.

На юг от клинта на новата строителна зона се намира сервизна станция, която ще бъде преустроена в земеделска зона. Станцията разполага с различни терминали, които обработват данни за новото развитие. Можем да работим, като записваме данните ръчно, но това ще отнеме много време. За процеса на обработка на данните можем да използваме JSON, което означава JavaScript Object Notation. Това е формат за данни, който е независим от програмните езици и съхранява информация по лесен за четене начин за съхранение и предаване на данни.

За да използваме JSON с Python, можем да използваме import json, което ще ни даде достъп до функциите на JSON. За нашите цели ще използваме следните функции:

  • json.loads(): Преобразува JSON низ в Python данни, приема един аргумент, който е низът, който искате да парсирате в Python.
  • json.dumps(): Преобразува Python данни в JSON низ, тази функция може да приеме до четири (4) аргумента, като само първият е задължителен за използване на функцията. Те са както следва:
    1. Python данните, които искате да преобразувате в JSON: те могат да бъдат от следните типове данни: речници, списъци, кортежи, низове, цели числа, числа с плаваща запетая, булеви стойности и None.
    2. indent: брой интервали, които искате да добавите в началото на всяка точка от данни
    3. separators: това са частите, които бихте искали да се появят между и/или след данните
    4. sort_keys: сортира ключовете на речника по азбучен ред, ако преобразувате речников тип данни.

За начало, отправете се към златния X знак в изотпуска, който се намира отляво, и се обърнете към бюрото с мемото. Използвайте функцията read() за да проверите информацията, необходима за потвърждаване на статуса на терминала, и я запишете. Отидете до светлия X знак пред терминала; има константа, наречена transmission. Използвайте json.dumps() за да я форматирате като JSON, така: transmission = json.dumps(transmission) .

Създайте речник, наречен load, и съхранете стойността на json.loads() с константата transmission като аргумент. Това ще преобразува JSON към Python, за да може информацията да се достъпи по-лесно. Използвайте функцията speak() с ключовете, посочени в мемото, и използвайки създадения от вас речник load. Например: player.speak(load["system"]), направете това за всички ключове.

След като проверите информацията на терминала, отидете към станцията, влезте вътре и се отправете към светлия X знак върху зелената постелка. Проверете мемото с функцията read(), прегледайте и запишете стойностите. В редактора има предварително написан речник, наречен profile, попълнете липсващите стойности с информацията от мемото.

Отидете до тъмния X знак върху зелената постелка, обърнете се към терминала и създайте променлива, наречена transfer, в която запазете стойността на json.dumps() и добавете речника profile като единствен аргумент. По този начин преобразувате речника в JSON низ. Използвайте предварително написаната функция display() и добавете JSON низа transfer, за да съхраните данните в терминала.

Отидете до тъмния X знак върху червената постелка и използвайте функцията read() за да проверите данните, вече въведени в терминала. Данните не са представени в правилен формат; за да бъдат правилно съхранени, те трябва да бъдат форматирани в JSON. Данните са съхранени в речниковата константа, наречена red_data. Създайте променлива, наречена red_storage, и съхранете стойността на функцията json.dumps().

За да форматирате данните, добавете следните аргументи към функцията: добавете red_data, за да преобразувате константата в JSON, добавете indent и го задайте на 5, за да форматирате текста, добавете separators и задайте ("- ", " = "), за да добавите тези символи в края на всеки ред. Редът трябва да изглежда така: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")) . Използвайте предварително написаната функция display() и добавете JSON низа red_storage, за да съхраните и покажете форматираните данни.

Отидете до тъмния X знак върху синята постелка, обърнете се към терминала и използвайте функцията read(). Подобно на предишните, данните не са съхранени правилно и трябва да бъдат форматирани, но също така трябва да бъдат сортирани. Данните са съхранени в константа, наречена blue_data. Създайте променлива, наречена blue_storage, и съхранете стойността на функцията json.dumps().

За аргументите: добавете blue_data, за да преобразувате константата в JSON, добавете indent и го задайте на 4, за да форматирате текста, добавете separators и задайте (".0", " = "), за да добавите тези символи в края на всеки ред. В допълнение към тези, добавете и аргумента sort_keys като последен аргумент и го задайте на True, по следния начин: sort_keys=True . Използвайте предварително написаната функция display() и добавете JSON низа blue_storage, за да съхраните и покажете сортираните данни и да завършите нивото.

Книга с Код