Om JSON
JSON (JavaScript Object Notation) er et filformat og datalagringsstandard, der bruger nøgleværdipar til at gemme og udveksle data. Det er det mest anvendte dataudvekslingsformat, ofte set i RESTful API'er, lette databaser, konfigurationsfiler og anden offline eller online software, der skal gemme, hente og udveksle data. De fleste programmeringssprog inkluderer biblioteker til at analysere og skrive JSON-data som standard, og JSON er et agnostisk dataformat for programmeringssprog. Værdier, der er gemt i en JSON-fil eller nyttelast, indeholder normalt strenge, numre og serielle datatyper som lister (arrays).
JSON og Python Dictionaries
JSON-data i python konverteres til et ordbogobjekt ved hjælp af "load" -metoden. Det ses ofte, at nogle mennesker sidestiller json-data og en pythonordbog, da syntaksen til at definere dem begge er næsten den samme. Json-data er dog intet andet end en tekststreng struktureret i en stiv syntaks, mens en pythonordbog er et datastrukturobjekt, der er gemt i hukommelsen. Hvis du vil gemme ordboksdata i en tekstfil eller sende dem til et andet ikke-python-program, skal du først konvertere det til en tekststreng (bytes). Denne dumpede / konverterede tekststreng er defineret i JSONs standardsyntaks, og processen med at konvertere en pythonordbog til en json-kompatibel streng kaldes serialisering.
Læsning og dumpning af JSON-data i Python
JSON-data kan hentes som et svar fra en server, læses fra fil, skives fra URL-forespørgselsparametre og så videre. Denne artikel fokuserer primært på læsning af json-data fra en lokalt gemt fil. Lad os antage, at en “test.json ”-fil indeholder følgende data:
"kodenavn": "Eoan Ermine", "version": "Ubuntu 19.10 "At læse testen.json-fil i python, kan du bruge koden nedenfor:
import jsonmed åben ("test.json ") som f:
data = json.belastning (f)
dump = json.lossepladser (data)
udskrive (data)
udskriv (type (data))
print (dump)
print (type (dump))
Den første linje i ovenstående kode importerer json-modulet. I den næste linje bruges “med åben” til sikkert at læse filindholdet. Inden for "med åben" blokken, "json.load ”-metoden bruges til at læse og gemme filindhold i” data ”-variablen. Data, der er indlæst i det foregående trin, konverteres tilbage til json-streng ved hjælp af "json.dump ”metode. At køre ovenstående kode viser følgende output:
'kodenavn': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"kodenavn": "Eoan Ermine", "version": "Ubuntu 19.10 "
Bemærk i output ovenfor, at “json.load ”-metoden læser rå json-data i en pythonordbog, mens“ json.dumps ”-metoder konverterer en ordbog til en streng, der er kompatibel med JSON-strukturen. Når et JSON-objekt er blevet konverteret til et python-ordbogobjekt, kan du bruge indbyggede python-ordbogsmetoder til at håndtere dataene. Eksemplet ovenfor er ret grundlæggende og inkluderer ikke arrays i JSON-data eller indlejrede værdier. Men inden for python kan du håndtere disse værdier som alle andre indlejrede ordbøger og lister.
Sortering og pæn udskrivning af JSON-data
“Jsonen.dump ”-metoden understøtter nogle valgfri parametre til sortering af nøgler og smuk udskrivning af output for forbedret læsbarhed.
import jsonmed åben ("test.json ") som f:
data = json.belastning (f)
dump = json.dumps (data, sort_keys = True, indent = 4)
print (dump)
Koden ovenfor viser følgende output:
"kodenavn": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Datatypekonverteringer
Listen nedenfor illustrerer, hvordan JSON-værdier konverteres til python-objekter og omvendt.
JSON | Python |
snor | str |
nummer | int eller flyde |
sandt falsk | Sandt falsk |
nul | Ingen |
array | liste |
objekt | diktere |
Json.værktøj Kommandolinjemodul
Python indeholder et dejligt kommandolinjeprogram “json.værktøj ”, der kan bruges til at validere og pænt udskrive JSON-strenge og filer.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.værktøjAt køre kommandoen ovenfor viser dig følgende output:
"kodenavn": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Du kan også bruge json.værktøj med JSON-filer. Udskift "in_file" og "out_file" i kommandoen nedenfor med dine ønskede værdier:
$ python3 -m json.værktøj i_fil ud_filBortset fra pæn udskrivning, sortering og validering af JSON-data, json.værktøj gør ikke noget andet. Så hvis du vil manipulere nogen JSON-data, skal du skrive din egen brugerdefinerede kode ved hjælp af det indbyggede JSON-modul.