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, som ofta ses i RESTful API: er, lätta databaser, konfigurationsfiler och annan offline eller online -programvara 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 programmeringsspråk agnostiskt dataformat. Värden som lagras i en JSON -fil eller nyttolast innehåller vanligtvis strängar, nummer och serialiserade datatyper som listor (matriser).
JSON och Python ordböcker
JSON -data i python konverteras till ett ordboksobjekt med hjälp av laddningsmetod. 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 inget annat än en textsträng strukturerad i en styv syntax medan en pythonordlista är ett datastrukturobjekt lagrat i minnet. Om du vill lagra ordboksdata i en textfil eller skicka den till ett annat icke-python-program måste du först konvertera den till en textsträng (byte). Denna dumpade / konverterade textsträng definieras i JSONs standardsyntax och processen att konvertera en pythonordlista till en json -kompatibel sträng kallas 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 kommer huvudsakligen att fokusera på att läsa json -data från en lokalt lagrad fil. Låt oss anta att en test.json -fil innehåller följande data:
{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}
För att läsa test.json -filen i python kan du använda koden nedan:
importerajson
med öppen ('test.json') somf:
data=json.ladda(f)
dumpa=json.soptippar(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. På nästa rad används med öppen för att säkert läsa filinnehållet. Inom met med öppet block används json.load -metoden för att läsa och lagra filinnehåll i datavariabeln. Data som laddades i föregående steg konverteras tillbaka till json -sträng med json.dump -metoden. Om du kör koden ovan visas följande utdata:
{'kodnamn':'Eoan Ermine', 'version':'Ubuntu 19.10'}<klass 'dict'>
{'kodnamn':'Eoan Ermine', 'version':'Ubuntu 19.10'}
<klass 'str'>
Lägg märke till i utdata ovan att json.load -metoden läser råa json -data till en python -ordlista medan json.dumps -metoder konverterar en ordlista till en sträng som är kompatibel med JSON -struktur. När ett JSON-objekt har konverterats till ett python-ordlistaobjekt kan du använda inbyggda python-ordlistametoder 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 skriva ut JSON -data
Metoden json.dump stöder några valfria parametrar för att sortera nycklar och snygg utskrift av utdata för förbättrad läsbarhet.
importerajsonmed öppen ('test.json') somf:
data=json.ladda(f)
dumpa=json.soptippar(data,sort_keys=Sann,indrag=4)
skriva ut (dumpa)
Koden ovan visar följande utdata:
{'codename': 'Eoan Ermine',
'version': 'Ubuntu 19.10'
}
Datatypskonverteringar
Listan nedan illustrerar hur JSON -värden konverteras till pythonobjekt och vice versa.
JSON | Pytonorm |
sträng | sid |
siffra | int eller float |
sant falskt | Sant falskt |
null | Ingen |
array | lista |
objekt | dict |
Json.tool Kommandoradsmodul
Python innehåller ett bra kommandoradsverktyg json.tool som kan användas för att validera och skriva ut JSON -strängar och filer.
$ eko'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.verktygGenom att köra kommandot ovan visas följande utdata:
{'codename': 'Eoan Ermine',
'version': 'Ubuntu 19.10'
}
Du kan också använda json.tool med JSON -filer. Ersätt in_file och out_file i kommandot nedan med dina önskade värden:
$ python3 -m json.verktygin_file out_fileFörutom att skriva ut, sortera och validera JSON -data gör json.tool inget annat. Så om du vill manipulera någon JSON-data måste du skriva din egen anpassade kod med den inbyggda JSON-modulen.