„Python JSON“: skaitykite, rašykite, analizuokite JSON (su pavyzdžiais)

Š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“ jsonmodulį. Kad galėtumėte jį naudoti, turite importuoti modulį.

 import json

Analizuoti JSON „Python“

jsonModulis 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.txtraš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.txtfaile.

Kai paleisite programą, person.txtfailas 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 indentir 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“

Įdomios straipsniai...