Python-oppimateriaali (CHEM-A2600)
JSON-tiedostot
Pythonissa voi hyödyntää JSON-muotoisia tiedostoja, joiden avulla on hyvin helppoa tallentaa dataa tiedostoihin ja lukea sitä (JSON = JavaScript Object Notation). JSON on ohjelmointikielestä riippumaton, avoin ja standardoitu tiedostoformaatti, jota voi käyttää useiden eri ohjelmointikielien kanssa. JSON-tiedostot ovat tekstimuotoisia ja ihmisten luettavissa (ja muokattavissa).
JSON-tiedostojen luominen
Luodaan JSON-tiedosto, jonne tallennamme listoja sisältävän sanakirjan:
# JSON-tiedostoja käytettäessä tarvitaan json-moduuli import json # Määritellään listoja sisältävä sanakirja alkuaineet = {'O': ['Happi', 15.999], 'C': ['Hiili', 12.011], 'N': ['Typpi', 14.007]} # Luodaan tiedosto tiedosto = open("alkuaineet.json", "w") # Kirjoittaminen json.tiedostoon hoidetaan json.dump()-funktiolla: # json.dump(TALLENNETTAVA_DATA, TIEDOSTO-OLIO, indent = 4) # indent = 4 -parametrilla tiedot tallentuvat selkeässä muodossa json.dump(alkuaineet, tiedosto, indent = 4) tiedosto.close()
Lopputuloksena saatava tiedosto moolimassat.json näyttää tältä:
{ "O": [ "Happi", 15.999 ], "C": [ "Hiili", 12.011 ], "N": [ "Typpi", 14.007 ] }
JSON-tiedostomuodon käyttäminen on suositeltavaa, kun haluat tallentaa monimutkaisempia tietorakenteita. Muuttujatyypit int, float, str, boolean sekä tietorakenteet list ja dict voi tallentaa sellaisinaan JSON-tiedostomuodossa.
JSON-tiedostojen lukeminen
Tietojen lukeminen yllä luodusta alkuaineet.json-tiedostosta on näin helppoa:
import json tiedosto = open("alkuaineet.json", "r") # Tiedot ladataan json.load(TIEDOSTO-OLIO) -funktiolla alkuaineet2 = json.load(tiedosto) # alkuaineet2 on nyt sanakirja tiedosto.close() # Hyödynnetään vielä luettuja tietoja for alkuaine, tiedot in alkuaineet.items(): # alkuaine on merkkijono (esim. "O"), tiedot on kahden alkion lista [nimi, atomiopaino] print("Alkuaineen {:s} tiedot: Nimi = {:s}, atomipaino = {:6.3f}".format(alkuaine, tiedot[0], tiedot[1]))
Koodi tulostaa:
Alkuaineen O tiedot: Nimi = Happi, atomipaino = 15.999
Alkuaineen C tiedot: Nimi = Hiili, atomipaino = 12.011
Alkuaineen N tiedot: Nimi = Typpi, atomipaino = 14.007