Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Serialiseringsmoduler
JSON-modul
Mål
Gå till servicestation och säkerställ att data sparas korrekt genom att använda JSON-modulen för att formatera filer.
Det finns en servicestation söder om annexbyggnaden i det nya byggområdet. Hela detta område ska omvandlas för odling. Stationen har flera terminaler som bearbetar data för den nya utvecklingen. Vi skulle kunna mata in data manuellt, men det skulle ta mycket tid. För att hantera data kan vi använda JSON, vilket står för JavaScript Object Notation. Det är ett språkoberoende dataformat som lagrar information på ett lättläst sätt för datasparande och överföring.
För att använda JSON med Python kan vi använda import json som ger oss tillgång till JSON-funktioner. För våra ändamål kommer vi att använda följande funktioner:
json.loads(): Konverterar en JSON-sträng till Python-data, tar ett argument, nämligen den sträng du vill parsa till Python.json.dumps(): Konverterar Python-data till ett JSON-strängobjekt. Denna funktion kan ta upp till fyra (4) argument; endast det första är obligatoriskt. Dessa är följande.- Python-data du vill konvertera till JSON: det kan vara av följande datatyper: ordböcker, listor, tupler, strängar, heltal, flyttal, boolean och None.
indent: antal mellanslag du vill lägga till i början av datapunktenseparators: de tecken du vill ska visas mellan och/eller i slutet av datapunkternasort_keys: sorterar ordböckers nycklar alfabetiskt om du konverterar en ordbok
För att börja, gå till det gyllene X-märket i utposten till vänster och rikta dig mot skrivbordet med meddelandet. Använd read()-funktionen för att kontrollera informationen som behövs för att bekräfta terminalens status och anteckna den. Gå sedan till det ljusa X-märket framför terminalen; där finns en konstant som heter transmission. Använd json.dumps() för att formatera den som JSON så att vi kan konvertera den, så här: transmission = json.dumps(transmission).
Skapa en ordbok som heter load och lagra värdet från json.loads() med konstanten transmission som argument. Detta kommer att konvertera JSON till Python så att informationen enkelt kan nås. Använd speak()-funktionen med de nycklar som anges i meddelandet och den load-ordbok du skapade. Till exempel: player.speak(load["system"]). Gör detta för alla nycklar.
Efter att ha kontrollerat informationen på terminalen, gå ner mot stationen, gå in och gå till det ljusa X-märket på den gröna mattan. Kontrollera meddelandet med hjälp av read()-funktionen och notera värdena. I editorn finns en förskriven ordbok som heter profile. Fyll i de saknade värdena med informationen från meddelandet.
Gå till det mörka X-märket på den gröna mattan, rikta dig mot terminalen och skapa en variabel som heter transfer. Lagra värdet från json.dumps() och ange ordboken profile som enda argument. På så sätt konverterar vi ordboken till ett JSON-strängobjekt. Använd den förskrivna display()-funktionen och skicka med transfer-JSON för att spara datan i terminalen.
Gå till det mörka X-märket på den röda mattan och använd read()-funktionen för att kontrollera datan som redan är inmatad i terminalen. Datan är inte presenterad i rätt format. För att spara informationen korrekt måste den lagras och formateras som JSON. Datan finns i en ordbokskonstant som heter red_data. Skapa en variabel som heter red_storage och lagra värdet från json.dumps()-funktionen.
För att formatera datan, lägg till följande argument i funktionen: lägg till red_data för att konvertera konstanten till JSON, lägg till indent och sätt värdet till 5 för att formatera texten, lägg till separators och ange (\"- \", \" = \") för att lägga till dessa symboler i slutet av varje rad. Raden ska se ut så här: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Använd den förskrivna display()-funktionen och skicka med JSON-strängen red_storage för att lagra och visa den formaterade datan.
Gå till det mörka X-märket på den blå mattan, rikta dig mot terminalen och använd read()-funktionen. Precis som tidigare är datan inte lagrad korrekt och behöver inte bara formateras utan även sorteras. Datan finns i en konstant som heter blue_data. Skapa en variabel som heter blue_storage och lagra värdet från json.dumps()-funktionen.
För argumenten: lägg till blue_data för att konvertera konstanten till JSON, lägg till indent och sätt värdet till 4 för att formatera texten, lägg till separators och ange (\".0\", \" = \") för att lägga till dessa symboler i slutet av varje rad. Utöver dessa, lägg också till argumentet sort_keys som det sista argumentet och sätt det till True, så här: sort_keys=True. Använd den förskrivna display()-funktionen och skicka med JSON-strängen blue_storage för att lagra och visa den sorterade datan och slutföra nivån.