I denne opplæringen lærer du å analysere, lese og skrive JSON i Python ved hjelp av eksempler. Du vil også lære å konvertere JSON til å diktere og ganske skrive ut den.
JSON ( J ava S cript O bject N otation) er et populært dataformat som brukes til å representere strukturerte data. Det er vanlig å overføre og motta data mellom en server og en webapplikasjon i JSON-format.
I Python eksisterer JSON som en streng. For eksempel:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Det er også vanlig å lagre et JSON-objekt i en fil.
Importer json-modul
For å jobbe med JSON (streng eller fil som inneholder JSON-objekt), kan du bruke Pythons json
modul. Du må importere modulen før du kan bruke den.
import json
Analyser JSON i Python
Den json
modulen gjør det enkelt å analysere JSON strenger og filer som inneholder JSON objekt.
Eksempel 1: Python JSON å diktere
Du kan analysere en JSON-streng ved hjelp av json.loads()
metoden. Metoden returnerer en ordbok.
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 personen en JSON-streng, og person_dict er en ordbok.
Eksempel 2: Python-lest JSON-fil
Du kan bruke json.load()
metoden til å lese en fil som inneholder JSON-objekt.
Anta at du har en fil som heter person.json
et JSON-objekt.
("name": "Bob", "languages": ("English", "Fench") )
Slik kan du analysere denne filen:
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 brukt open()
funksjonen til å lese json-filen. Deretter analyseres filen ved hjelp av en json.load()
metode som gir oss en ordbok som heter data.
Hvis du ikke vet hvordan du skal lese og skrive filer i Python, anbefaler vi at du sjekker Python File I / O.
Python-konvertering til JSON-streng
Du kan konvertere en ordbok til JSON-streng ved hjelp av 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 tabell som viser Python-objekter og deres tilsvarende konvertering til JSON.
Python | JSON tilsvarende |
---|---|
dict | gjenstand |
list , tuple | array |
str | streng |
int , float ,int | Antall |
True | ekte |
False | falsk |
None | null |
Skriver JSON til en fil
For å skrive JSON til en fil i Python, kan vi bruke json.dump()
metoden.
Eksempel 4: Skrive 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 programmet ovenfor har vi åpnet en fil som heter person.txt
i skrivemodus ved hjelp av 'w'
. Hvis filen ikke allerede eksisterer, blir den opprettet. Deretter json.dump()
transformeres person_dict
til en JSON-streng som lagres i person.txt
filen.
Når du kjører programmet, blir person.txt
filen opprettet. Filen har følgende tekst.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python pen utskrift JSON
For å analysere og feilsøke JSON-data, må vi kanskje skrive dem ut i et mer lesbart format. Dette kan gjøres ved å sende flere parametere indent
og sort_keys
til json.dumps()
og json.dump()
metode.
Eksempel 5: Python pen utskrift 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 kjører programmet, vil utdataene være:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
I programmet ovenfor har vi brukt 4
mellomrom for innrykk. Og tastene er sortert i stigende rekkefølge.
For øvrig er standardverdien for innrykk None
. Standardverdien for sort_keys er også False
.
Anbefalte målinger:
- Python JSON til CSV og omvendt
- Python XML til JSON og omvendt
- Python simplejson