Python

Sådan læses og skrives Json-filer i Python

Sådan læses og skrives Json-filer i Python
Denne artikel forklarer, hvordan man håndterer JSON filer og data på Python programmeringssprog. Python leveres med et indbygget “json” -modul, der gør håndtering af JSON-data let og ligetil.

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 json
med å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 json
med å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øj

At 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_fil

Bortset 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.

Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...
Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...