Python JSON: Læs, skriv, analyser JSON (med eksempler)

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 jsonmodul. Du skal importere modulet, før du kan bruge det.

 import json

Parse JSON i Python

Den jsonModulet 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.jsonder 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.txti skrivemåde ved hjælp af 'w'. Hvis filen ikke allerede findes, oprettes den. Derefter json.dump()omdannes person_dicttil en JSON-streng, der gemmes i person.txtfilen.

Når du kører programmet, person.txtoprettes 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 indentog sort_keystil 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 4mellemrum 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

Interessante artikler...