Selles õpetuses õpitakse näidete abil Pythonis JSON-i sõeluma, lugema ja kirjutama. Samuti õpid teisendama JSON-i dikteerimiseks ja ilusa printimise.
JSON ( J ava S cript O bject N otation) on populaarne andmeformaadis kasutatakse esindavad struktureeritud andmed. Andmete edastamine ja vastuvõtmine serveri ja veebirakenduse vahel on JSON-vormingus tavaline.
Pythonis eksisteerib JSON stringina. Näiteks:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Samuti on tavaline JSON-objekti faili salvestamine.
Import jsoni moodul
JSON-iga (string või JSON-objekti sisaldav fail) töötamiseks võite kasutada Pythoni json
moodulit. Enne selle kasutamist peate mooduli importima.
import json
Sõeluge JSON Pythonis
json
Moodul on lihtne sõeluda JSON stringid ja faile, mis sisaldavad JSON objekti.
Näide 1: dikteerimiseks Python JSON
JSON-i stringi saab sõeluda json.loads()
meetodi abil. Meetod tagastab sõnaraamatu.
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'))
Siin on inimene JSON-string ja person_dict on sõnastik.
Näide 2: Python luges JSON-faili
json.load()
Meetodit saate kasutada JSON-objekti sisaldava faili lugemiseks.
Oletame, et teil on fail nimega person.json
JSON.
("name": "Bob", "languages": ("English", "Fench") )
Selle faili sõelumiseks tehke järgmist.
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Siin oleme open()
funktsiooni kasutanud jsoni faili lugemiseks. Seejärel sõelutakse fail json.load()
meetodi abil, mis annab meile sõnastik nimega andmed.
Kui te ei tea, kuidas Pythonis faile lugeda ja kirjutada, soovitame teil kontrollida Pythoni failide I / O-d.
Pythoni teisendamine JSON-stringiks
json.dumps()
Meetodi abil saate sõnastiku teisendada JSON-stringiks .
Näide 3: teisenda diktsion JSON-iks
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)
Siin on tabel, mis näitab Pythoni objekte ja nende samaväärset teisendamist JSON-iks.
Python | JSONi ekvivalent |
---|---|
dict | objekt |
list , tuple | massiiv |
str | string |
int , float ,int | number |
True | tõsi |
False | vale |
None | null |
JSON-i kirjutamine faili
JSONi kirjutamiseks Pythoni faili saame kasutada json.dump()
meetodit.
Näide 4: JSON-i kirjutamine faili
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 ) )
Ülaltoodud programmis oleme 4
taandamiseks kasutanud tühikuid. Ja võtmed on järjestatud kasvavas järjekorras.
Muide, taande vaikeväärtus on None
. Ja sort_keys vaikeväärtus on False
.
Soovitatavad lugemised:
- Python JSON CSV-le ja vastupidi
- Pythoni XML-i JSON-ile ja vastupidi
- Python simplejson