Ebben az oktatóanyagban megtanulsz elemezni, olvasni és írni JSON-t a Python-ban példák segítségével. Ezenkívül megtanulja átalakítani a JSON-ot diktálttá és szépen kinyomtatni.
JSON ( J Ava S cript O bject N otation) egy népszerű adatformátum használt képviselő strukturált adatok. JSON formátumban gyakran továbbítanak és fogadunk adatokat egy szerver és egy webalkalmazás között.
A Pythonban a JSON karakterláncként létezik. Például:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Az is gyakori, hogy JSON objektumokat tárolnak egy fájlban.
Importálja a json modult
A JSON (string vagy JSON objektumot tartalmazó fájl) használatához használhatja a Python json
modulját. A használat előtt be kell importálnia a modult.
import json
A JSON elemzése a Pythonban
A json
modul megkönnyíti a JSON-karakterláncok és a JSON-objektumot tartalmazó fájlok elemzését.
1. példa: Python JSON diktál
A JSON karakterláncot elemezheti a json.loads()
módszerrel. A módszer szótárt ad vissza.
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'))
Itt a személy egy JSON karakterlánc, a person_dict pedig egy szótár.
2. példa: A Python beolvassa a JSON fájlt
A json.load()
metódus segítségével elolvashatja a JSON objektumot tartalmazó fájlt.
Tegyük fel, hogy van egy fájlja, person.json
amely JSON objektumot tartalmaz.
("name": "Bob", "languages": ("English", "Fench") )
Így elemezheti ezt a fájlt:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Itt a open()
függvényt a json fájl beolvasására használtuk . Ezután a fájlt elemezzük egy olyan json.load()
módszerrel, amely adatszótárt ad nekünk.
Ha nem tudja, hogyan kell fájlokat írni és olvasni a Pythonban, javasoljuk, hogy ellenőrizze a Python File I / O parancsot.
Python Konvertálás JSON karakterláncra
A json.dumps()
metódus segítségével a szótárt JSON karakterláncokká alakíthatja .
3. példa: A dict konvertálása JSON-ra
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)
Itt van egy táblázat, amely bemutatja a Python-objektumokat és azok egyenértékű átalakítását JSON-vá.
Piton | JSON egyenértékű |
---|---|
dict | tárgy |
list , tuple | sor |
str | húr |
int , float ,int | szám |
True | igaz |
False | hamis |
None | nulla |
JSON írása fájlba
Ha JSON-t írunk egy fájlba a Pythonban, használhatjuk a json.dump()
metódust.
4. példa: JSON írása fájlba
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)
In the above program, we have opened a file named person.txt
in writing mode using 'w'
. If the file doesn't already exist, it will be created. Then, json.dump()
transforms person_dict
to a JSON string which will be saved in the person.txt
file.
When you run the program, the person.txt
file will be created. The file has following text inside it.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python pretty print JSON
To analyze and debug JSON data, we may need to print it in a more readable format. This can be done by passing additional parameters indent
and sort_keys
to json.dumps()
and json.dump()
method.
Example 5: Python pretty print 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))
When you run the program, the output will be:
( "languages": "English", "name": "Bob", "numbers": ( 2, 1.6, null ) )
A fenti programban 4
szóközöket használtunk behúzáshoz. A kulcsok növekvő sorrendbe vannak rendezve.
Egyébként a behúzás alapértelmezett értéke None
. És a sort_keys alapértelmezett értéke False
.
Ajánlott olvasmányok:
- Python JSON-ból CSV-be és fordítva
- Python XML JSON-hoz és fordítva
- Python simplejson