Šioje pamokoje išmoksite analizuoti, skaityti ir rašyti JSON „Python“ pavyzdžių pagalba. Be to, išmoksite konvertuoti JSON į diktantą ir gražiai jį atspausdinti.
JSON („ J ava S cript O bject N otation“) yra populiarus duomenų formatas, naudojamas struktūriniams duomenims pateikti. Dažniausiai duomenys perduodami ir gaunami iš serverio ir žiniatinklio programos JSON formatu.
„Python“ JSON egzistuoja kaip eilutė. Pavyzdžiui:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Taip pat įprasta JSON objektą saugoti faile.
Importuoti „Json“ modulį
Norėdami dirbti su JSON (eilutė arba failas, kuriame yra JSON objektas), galite naudoti „Python“ json
modulį. Kad galėtumėte jį naudoti, turite importuoti modulį.
import json
Analizuoti JSON „Python“
json
Modulis leidžia lengvai apdoroti JSON eilutes ir failus, kurių sudėtyje yra JSON objektą.
1 pavyzdys: „Python JSON“ diktuoti
Galite išanalizuoti JSON eilutę naudodami json.loads()
metodą. Metodas pateikia žodyną.
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'))
Čia asmuo yra JSON eilutė, o person_dict yra žodynas.
2 pavyzdys: „Python“ skaitė JSON failą
Galite naudoti json.load()
metodą nuskaityti failą, kuriame yra JSON objektas.
Tarkime, kad turite failą pavadinimu person.json
, kuriame yra JSON objektas.
("name": "Bob", "languages": ("English", "Fench") )
Štai kaip galite analizuoti šį failą:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Čia mes naudojome šią open()
funkciją, norėdami nuskaityti „Json“ failą. Tada failas analizuojamas taikant json.load()
metodą, kuris suteikia mums žodyną, pavadintą duomenimis.
Jei nežinote, kaip skaityti ir rašyti failus „Python“, rekomenduojame patikrinti „Python File I / O“.
„Python“ konvertuoti į JSON eilutę
Žodyną galite konvertuoti į JSON eilutę naudodami json.dumps()
metodą.
3 pavyzdys: konvertuokite diktą į 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)
Čia pateikiama lentelė, rodanti „Python“ objektus ir jų ekvivalentišką konversiją į JSON.
„Python“ | JSON ekvivalentas |
---|---|
dict | objektas |
list , tuple | masyvas |
str | stygos |
int , float ,int | numeris |
True | tiesa |
False | melagingas |
None | niekinis |
JSON rašymas į failą
Norėdami parašyti JSON į failą „Python“, galime naudoti json.dump()
metodą.
4 pavyzdys: JSON rašymas į failą
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)
Pirmiau pateiktoje programoje atidarėme failą, pavadintą person.txt
rašymo režimu naudojant 'w'
. Jei failo dar nėra, jis bus sukurtas. Tada json.dump()
transformuojasi person_dict
į JSON eilutę, kuri bus išsaugota person.txt
faile.
Kai paleisite programą, person.txt
failas bus sukurtas. Failo viduje yra toks tekstas.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
„Python“ gražus spausdinimas JSON
Norint išanalizuoti ir derinti JSON duomenis, gali reikėti juos atsispausdinti labiau skaitomu formatu. Tai gali būti padaryta priimant papildomus parametrus indent
ir sort_keys
į json.dumps()
ir json.dump()
metodas.
5 pavyzdys: „Python“ gražus spausdinimas 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))
Kai paleisite programą, išvestis bus:
(„kalbos“: „anglų kalba“, „vardas“: „Bobas“, „skaičiai“: (2, 1,6, nulis))
Aukščiau pateiktoje programoje 4
įtraukoms naudoti naudojome tarpus. Raktai rūšiuojami didėjimo tvarka.
Beje, numatytoji įtraukos reikšmė yra None
. Numatytoji sort_keys reikšmė yra False
.
Rekomenduojami skaitiniai:
- „Python JSON“ į CSV ir atvirkščiai
- „Python XML“ į JSON ir atvirkščiai
- „Python simplejson“