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 json
modul. Du måste importera modulen innan du kan använda den.
import json
Analysera JSON i Python
Den json
Modulen 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.json
som 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.txt
i skrivläge med 'w'
. Om filen inte redan finns skapas den. Då json.dump()
förvandlas person_dict
till en JSON sträng som kommer att sparas i person.txt
filen.
När du kör programmet person.txt
skapas 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 indent
och sort_keys
till 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 4
mellanslag 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