Hur man läser och skriver Json -filer i Python

How Read Write Json Files Python



Denna artikel kommer att förklara hur man hanterar JSON -filer och data i Python -programmeringsspråk. Python levereras med en inbyggd json-modul som gör det enkelt och enkelt att hantera JSON-data.

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.

importerajson

med ö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.verktyg

Genom 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_file

Fö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.