Om JSON
JSON (JavaScript Object Notation) är ett filformat och datalagringsstandard som använder nyckel-värdepar för att lagra och utbyta data. Det är det mest använda datautbytesformatet, ofta sett i RESTful API: er, lätta databaser, konfigurationsfiler och annan offline- eller onlineprogramvara som behöver lagra, hämta och utbyta data. De flesta programmeringsspråk inkluderar bibliotek för att analysera och skriva JSON-data som standard och JSON är ett agnostiskt dataformat för programmeringsspråk. Värden som lagras i en JSON-fil eller nyttolast innehåller vanligtvis strängar, siffror och datatyper som kan serieiseras som listor (arrays).
JSON och Python Dictionaries
JSON-data i python konverteras till ett ordbokobjekt med hjälp av "ladda" -metoden. Det ses ofta att vissa människor likställer json-data och en python-ordlista, eftersom syntaxen för att definiera dem båda är nästan densamma. Json-data är dock ingenting annat än en textsträng strukturerad i en stel syntax medan en python-ordlista är ett datastrukturobjekt lagrat i minnet. Om du vill lagra ordboksdata i en textfil eller skicka den till ett annat program som inte är python måste du först konvertera det till en textsträng (byte). Denna dumpade / konverterade textsträng definieras i JSONs standardsyntax och processen att konvertera en pythonordbok till en json-kompatibel sträng kallas för serialisering.
Läsa och dumpa JSON-data i Python
JSON-data kan hämtas som ett svar från en server, läsas från fil, skivas från URL-frågeparametrar och så vidare. Den här artikeln fokuserar främst på att läsa json-data från en lokalt lagrad fil. Låt oss anta att ett “test.json ”-fil innehåller följande data:
"kodnamn": "Eoan Ermine", "version": "Ubuntu 19.10 "Att läsa testet.json-fil i python kan du använda koden nedan:
importera jsonmed öppen ("test.json ") som f:
data = json.belastning (f)
dumpa = json.dumpar (data)
skriva ut (data)
skriva ut (typ (data))
skriva ut (dumpa)
skriva ut (typ (dumpa))
Den första raden i ovanstående kod importerar json-modulen. I nästa rad används "med öppen" för att säkert läsa filinnehållet. Inom "med öppet" block, "json.load-metoden används för att läsa och lagra filinnehåll i "data" -variabeln. Data som laddats i föregående steg konverteras tillbaka till json-sträng med "json.dump ”-metoden. Att köra koden ovan visar följande utdata:
'kodnamn': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"kodnamn": "Eoan Ermine", "version": "Ubuntu 19.10 "
Observera i utgången ovan att “json.load "-metoden läser rå json-data i en python-ordlista medan" json.dumps ”-metoder omvandlar en ordbok till en sträng som är kompatibel med JSON-strukturen. När ett JSON-objekt har konverterats till ett python-ordbokobjekt kan du använda inbyggda python-ordboksmetoder för att hantera data. Exemplet ovan är ganska grundläggande och innehåller inte matriser i JSON-data eller kapslade värden. Men inom python kan du hantera dessa värden som alla andra kapslade ordböcker och listor.
Sortera och ganska skriva ut JSON-data
”Json.dump ”-metoden stöder några valfria parametrar för sortering av nycklar och vacker utskrift för bättre läsbarhet.
importera jsonmed öppen ("test.json ") som f:
data = json.belastning (f)
dumpa = json.dumpar (data, sort_keys = True, indent = 4)
skriva ut (dumpa)
Koden ovan visar följande utdata:
"kodnamn": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Omvandlingar av datatyp
Listan nedan illustrerar hur JSON-värden konverteras till pythonobjekt och vice versa.
JSON | Pytonorm |
sträng | str |
siffra | int eller flyta |
sant falskt | Sant falskt |
null | Ingen |
array | lista |
objekt | diktera |
Json.verktyg Kommandoradsmodul
Python innehåller ett trevligt kommandoradsverktyg “json.verktyg ”som kan användas för att validera och vackert skriva ut JSON-strängar och filer.
$ echo '"kodnamn": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.verktygAtt köra kommandot ovan visar följande utdata:
"kodnamn": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Du kan också använda json.verktyg med JSON-filer. Ersätt "in_file" och "out_file" i kommandot nedan med önskade värden:
$ python3 -m json.verktyg i_fil ut_filAnnat än vackert utskrift, sortering och validering av JSON-data, json.verktyg gör ingenting annat. Så om du vill manipulera någon JSON-data måste du skriva din egen anpassade kod med den inbyggda JSON-modulen.