Edistynyt Python-kehityskurssi
Luku
>
Taso
Serialisointimoduulit
JSON-moduuli
Tavoite
Mene palveluasemalle ja varmista, että data on tallennettu oikein käyttämällä JSON-moduulia tiedostojen muotoiluun.
Uuden rakennusalueen liitteen rakennuksen eteläpuolella sijaitsee palveluasema, ja koko alue uudistetaan viljelyä varten. Asemalla on erilaisia päätelaitteita, jotka käsittelevät dataa uutta kehitystä varten. Voimme kirjoittaa datan käsin, mutta se veisi paljon aikaa. Datan käsittelyprosessissa voimme käyttää JSON:ia (JavaScript Object Notation), joka on ohjelmointikielestä riippumaton dataformaatti ja tallentaa tietoja helposti luettavassa muodossa tallennusta ja siirtoa varten.
Jotta voimme käyttää JSON:ia Pythonissa, voimme käyttää import json, joka antaa meille pääsyn JSON-funktioihin. Tarkoituksiimme käytämme seuraavia funktioita:
json.loads(): Muuntaa JSON-merkkijonon Python-dataksi. Ottaa yhden argumentin, eli merkkijonon, jonka haluat jäsentää Pythoniksi.json.dumps(): Muuntaa Python-datan JSON-merkkijono-objektiksi. Tämä funktio voi ottaa jopa neljä (4) argumenttia, joista vain ensimmäinen on pakollinen. Ne ovat seuraavat.- Python-data, jonka haluat muuntaa JSON:iksi: se voi olla seuraavan tyyppistä: sanakirjat, listat, tuplet, merkkijonot, kokonaisluvut, liukuluvut, boolean-arvot ja None-tyyppiset arvot.
indent: lisättävien välilyöntien määrä kunkin datapisteen alkuunseparators: nämä ovat osat, jotka haluat esiintyvän datapisteiden välissä ja/tai lopussa.sort_keys: lajittelee sanakirjan avaimet aakkosjärjestykseen, jos muunnat sanakirjan tyyppistä dataa.
Aloittaaksesi, suuntaa vasemmalla sijaitsevaan siirtopaikkaan, jossa on kultainen X-merkki, ja käänny pöydän puoleen, jolla on muistiinpano. Käytä read()-funktiota varmistaaksesi terminaalin tilan ja merkitä se ylös.
Kävele terminaalin edessä olevaan vaaleaan X-merkkiin; siellä on vakio nimeltä transmission. Käytä json.dumps()-funktiota muotoillaksesi sen JSON-muotoon, jotta voimme muuntaa sen, esimerkiksi näin: transmission = json.dumps(transmission) .
Luo sanakirja nimeltä load ja tallenna siihen json.loads()-funktion arvo käyttäen transmission-vakioa argumenttina. Tämä muuntaa JSONin Pythoniksi, jolloin tietoon pääsee helposti käsiksi. Käytä speak()-funktiota muistiinpanossa mainittujen avainten kanssa käyttäen luomaasi load-sanakirjaa. Esimerkiksi: player.speak(load["system"]) – tee tämä kaikille avaimille.
Kun olet tarkistanut terminaalin tiedot, kävele kohti asemaa, mene sisälle ja suuntaa vihreän maton päällä olevaan vaaleaan X-merkkiin. Tarkista muistiinpano käyttämällä read()-funktiota, tarkista ja merkitse ylös arvot. Editorissa on valmiiksi kirjoitettu sanakirja nimeltä profile; täytä puuttuvat arvot muistiinpanon tiedoilla.
Kävele vihreän maton päällä olevaan tummaan X-merkkiin, käänny terminaalia kohti ja luo muuttuja nimeltä transfer. Tallenna siihen json.dumps()-funktion arvo ja lisää ainoaksi argumentiksi profile-sanakirja. Tällä muunnamme sanakirjan JSON-merkkijono-objektiksi. Käytä valmiiksi kirjoitettua display()-funktiota ja lisää transfer JSON tallentaaksesi datan terminaaliin.
Kävele punaisen maton päällä olevaan tummaan X-merkkiin ja käytä read()-funktiota varmistaaksesi terminaaliin jo syötetyn datan. Data ei ole oikeassa muodossa; jotta tieto tallennetaan oikein, sen täytyy olla tallennettuna ja muotoiltuna JSONiin. Data on tallennettu sanakirjamuotoiseen vakioon nimeltä red_data. Luo muuttuja nimeltä red_storage ja tallenna siihen json.dumps()-funktion arvo.
Datan muotoilua varten lisää funktioon seuraavat argumentit: lisää red_data muuntaaksesi vakion JSONiksi, lisää indent ja aseta se arvoon 5 tekstin muotoilua varten, lisää separators ja määritä arvoksi ("- ", " = ") lisätäksesi nämä symbolit jokaisen rivin loppuun. Rivin tulisi näyttää tältä: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")) . Käytä valmiiksi kirjoitettua display()-funktiota ja lisää red_storage JSON-merkkijono tallentaaksesi ja näyttääksesi muotoillun datan.
Kävele sinisen maton päällä olevaan tummaan X-merkkiin, käänny terminaalia kohti ja käytä read()-funktiota. Aivan kuten aiemmin, dataa ei ole tallennettu oikein – se tulee muotoilla ja myös lajitella. Data on tallennettu vakioon nimeltä blue_data. Luo muuttuja nimeltä blue_storage ja tallenna siihen json.dumps()-funktion arvo.
Argumentteina: lisää blue_data muuntaaksesi vakion JSONiksi, lisää indent ja aseta se arvoon 4 tekstin muotoilua varten, lisää separators ja määritä arvoksi (".0", " = ") lisätäksesi nämä symbolit jokaisen rivin loppuun. Lisäksi lisää argumentti sort_keys lopuksi ja aseta se arvoon True, näin: sort_keys=True . Käytä valmiiksi kirjoitettua display()-funktiota ja lisää blue_storage JSON-merkkijono tallentaaksesi ja näyttääksesi lajitellun datan ja suorittaaksesi tason.