Python JSON: Läs, skriv, analysera JSON (med exempel)

I den här handledningen lär du dig att analysera, läsa och skriva JSON i Python med hjälp av exempel. Du kommer också att lära dig att konvertera JSON till att diktera och vackert skriva ut det.

JSON ( J ava S cript O bject N otation) är ett populärt dataformat som används för att representera strukturerad data. Det är vanligt att sända och ta emot data mellan en server och webbapplikation i JSON-format.

I Python finns JSON som en sträng. Till exempel:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

Det är också vanligt att lagra ett JSON-objekt i en fil.

Importera json-modul

För att arbeta med JSON (sträng eller fil som innehåller JSON-objekt) kan du använda Pythons jsonmodul. Du måste importera modulen innan du kan använda den.

 import json

Analysera JSON i Python

Den jsonModulen gör det lätt att tolka JSON strängar och filer som innehåller JSON-objekt.

Exempel 1: Python JSON att diktera

Du kan analysera en JSON-sträng med json.loads()metoden. Metoden returnerar en ordlista.

 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'))

Här är person en JSON-sträng och person_dict är en ordlista.

Exempel 2: Python läste JSON-fil

Du kan använda json.load()metoden för att läsa en fil som innehåller JSON-objekt.

Antag att du har en fil med namnet person.jsonsom innehåller ett JSON-objekt.

  ("name": "Bob", "languages": ("English", "Fench") ) 

Så här kan du analysera den här filen:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

Här har vi använt open()funktionen för att läsa json-filen. Därefter analyseras filen med en json.load()metod som ger oss en ordbok med namnet data.

Om du inte vet hur du läser och skriver filer i Python rekommenderar vi att du kontrollerar Python File I / O.

Python Konvertera till JSON-sträng

Du kan konvertera en ordbok till JSON-sträng med json.dumps()metoden.

Exempel 3: Konvertera dict till 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) 

Här är en tabell som visar Python-objekt och deras motsvarande omvandling till JSON.

Pytonorm JSON Motsvarande
dict objekt
list, tuple array
str sträng
int, float,int siffra
True Sann
False falsk
None null

Skriva JSON till en fil

För att skriva JSON till en fil i Python kan vi använda json.dump()metoden.

Exempel 4: Skriva JSON till 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 ovanstående program har vi öppnat en fil med namnet person.txti skrivläge med 'w'. Om filen inte redan finns skapas den. Då json.dump()förvandlas person_dicttill en JSON sträng som kommer att sparas i person.txtfilen.

När du kör programmet person.txtskapas filen. Filen har följande text inuti.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

Python vackert tryck JSON

För att analysera och felsöka JSON-data kan vi behöva skriva ut det i ett mer läsbart format. Detta kan göras genom att skicka ytterligare parametrar indentoch sort_keystill json.dumps()och json.dump()metod.

Exempel 5: Python-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 kör programmet blir resultatet:

 ("languages": "English", "name": "Bob", "numbers": (2, 1.6, null)) 

I ovanstående program har vi använt 4mellanslag för indragning. Och tangenterna sorteras i stigande ordning.

Förresten är standardvärdet för indrag None. Och standardvärdet för sort_keys är False.

Rekommenderade avläsningar:

  • Python JSON till CSV och vice versa
  • Python XML till JSON och vice versa
  • Python simplejson

Intressanta artiklar...