I denne vejledning lærer du at analysere, læse og skrive JSON i Python ved hjælp af eksempler. Du lærer også at konvertere JSON til at diktere og smukt udskrive det.
JSON ( J ava S cript O bject N otation ) er et populært dataformat, der bruges til at repræsentere strukturerede data. Det er almindeligt at sende og modtage data mellem en server og webapplikation i JSON-format.
I Python eksisterer JSON som en streng. For eksempel:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Det er også almindeligt at gemme et JSON-objekt i en fil.
Importer json-modul
For at arbejde med JSON (streng eller fil, der indeholder JSON-objekt), kan du bruge Pythons json
modul. Du skal importere modulet, før du kan bruge det.
import json
Parse JSON i Python
Den json
Modulet gør det nemt at parse JSON strygere og filer, der indeholder JSON objekt.
Eksempel 1: Python JSON skal diktere
Du kan analysere en JSON-streng ved hjælp af json.loads()
metoden. Metoden returnerer en ordbog.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Her er person en JSON-streng, og person_dict er en ordbog.
Eksempel 2: Python læste JSON-fil
Du kan bruge json.load()
metoden til at læse en fil, der indeholder JSON-objekt.
Antag, du har en fil med navnet, person.json
der indeholder et JSON-objekt.
("name": "Bob", "languages": ("English", "Fench") )
Sådan kan du analysere denne fil:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Her har vi brugt open()
funktionen til at læse json-filen. Derefter analyseres filen ved hjælp af en json.load()
metode, der giver os en ordbog, der hedder data.
Hvis du ikke ved, hvordan du læser og skriver filer i Python, anbefaler vi dig at kontrollere Python File I / O.
Python Konverter til JSON-streng
Du kan konvertere en ordbog til JSON-streng ved hjælp af json.dumps()
metoden.
Eksempel 3: Konverter dict til JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Her er en tabel, der viser Python-objekter og deres ækvivalente konvertering til JSON.
Python | JSON ækvivalent |
---|---|
dict | objekt |
list , tuple | array |
str | snor |
int , float ,int | nummer |
True | sand |
False | falsk |
None | nul |
Skrivning af JSON til en fil
For at skrive JSON til en fil i Python kan vi bruge json.dump()
metoden.
Eksempel 4: Skrivning af JSON til en fil
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
I ovenstående program har vi åbnet en fil navngivet person.txt
i skrivemåde ved hjælp af 'w'
. Hvis filen ikke allerede findes, oprettes den. Derefter json.dump()
omdannes person_dict
til en JSON-streng, der gemmes i person.txt
filen.
Når du kører programmet, person.txt
oprettes filen. Filen har følgende tekst inde.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python smukt print JSON
For at analysere og fejle JSON-data skal vi muligvis udskrive dem i et mere læsbart format. Dette kan gøres ved at videregive yderligere parametre indent
og sort_keys
til json.dumps()
og json.dump()
metode.
Eksempel 5: Python-pynt udskriver JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Når du kører programmet, vil output være:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
I ovenstående program har vi brugt 4
mellemrum til indrykning. Og tasterne er sorteret i stigende rækkefølge.
Forresten er standardværdien for indrykning None
. Og standardværdien af sort_keys er False
.
Anbefalede målinger:
- Python JSON til CSV og omvendt
- Python XML til JSON og omvendt
- Python simplejson