Tässä opetusohjelmassa opit jäsentämään, lukemaan ja kirjoittamaan JSON: ää Pythonissa esimerkkien avulla. Opit myös muuntamaan JSON sanelemaan ja kauniisti tulostamaan sen.
JSON ( J ava S cript O bject N otation ) on suosittu datamuoto, jota käytetään jäsenneltyjen tietojen esittämiseen. On tavallista siirtää ja vastaanottaa tietoja palvelimen ja verkkosovelluksen välillä JSON-muodossa.
Pythonissa JSON on olemassa merkkijonona. Esimerkiksi:
p = '("name": "Bob", "languages": ("Python", "Java"))'
On myös tavallista tallentaa JSON-objekti tiedostoon.
Tuo json-moduuli
Jos haluat työskennellä JSON: n (merkkijono tai tiedosto, joka sisältää JSON-objektin) kanssa, voit käyttää Pythonin json
moduulia. Sinun on tuotava moduuli, ennen kuin voit käyttää sitä.
import json
Jäsennä JSON Pythonissa
json
Moduuli on helppo jäsentää JSON jousille ja tiedostoja, jotka sisältävät JSON esine.
Esimerkki 1: Python JSON sanelee
Voit jäsentää JSON-merkkijonon json.loads()
menetelmällä. Menetelmä palauttaa sanakirjan.
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'))
Tässä henkilö on JSON-merkkijono ja person_dict on sanakirja.
Esimerkki 2: Python luki JSON-tiedoston
Voit käyttää json.load()
menetelmää JSON-objektia sisältävän tiedoston lukemiseen.
Oletetaan, että sinulla on tiedosto nimeltä person.json
JSON-objekti.
("name": "Bob", "languages": ("English", "Fench") )
Näin voit jäsentää tämän tiedoston:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Tässä olemme käyttäneet open()
toimintoa lukemaan json-tiedoston. Sitten tiedosto jäsennetään json.load()
menetelmällä, joka antaa meille sanakirjan nimeltä data.
Jos et tiedä kuinka lukea ja kirjoittaa tiedostoja Pythonissa, suosittelemme tarkistamaan Python File I / O.
Python Muunna JSON-merkkijonoksi
Voit muuntaa sanakirjan JSON-merkkijonoksi json.dumps()
menetelmällä.
Esimerkki 3: Muunna sanelu JSON: ksi
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)
Tässä on taulukko, joka näyttää Python-objektit ja niiden vastaavan muunnoksen JSON: ksi.
Python | JSON-ekvivalentti |
---|---|
dict | esine |
list , tuple | taulukko |
str | merkkijono |
int , float ,int | määrä |
True | totta |
False | väärä |
None | tyhjä |
Kirjoitetaan JSON tiedostoon
Voit kirjoittaa JSON-tiedoston Python-tiedostoon käyttämällä json.dump()
menetelmää.
Esimerkki 4: JSON: n kirjoittaminen tiedostoon
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)
Edellä olevassa ohjelmassa olemme avanneet tiedoston, joka on nimetty person.txt
kirjoitustilassa 'w'
. Jos tiedostoa ei vielä ole olemassa, se luodaan. Sitten json.dump()
muuntuu person_dict
JSON-merkkijonoksi, joka tallennetaan person.txt
tiedostoon.
Kun suoritat ohjelman, person.txt
tiedosto luodaan. Tiedoston sisällä on seuraava teksti.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python melko tulostaa JSON
JSON-tietojen analysoimiseksi ja virheenkorjaamiseksi meidän on ehkä tulostettava ne luettavammassa muodossa. Tämä voidaan tehdä välittämällä lisäparametreja indent
sekä sort_keys
käyttäjälle json.dumps()
ja json.dump()
menetelmälle.
Esimerkki 5: Python melko tulostaa 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))
Kun suoritat ohjelmaa, tulos on:
("kielet": "englanti", "nimi": "Bob", "numerot": (2, 1.6, null))
Yllä olevassa ohjelmassa olemme käyttäneet 4
välilyöntejä sisennykseen. Ja näppäimet lajitellaan nousevaan järjestykseen.
Muuten, sisennyksen oletusarvo on None
. Ja lajittelunäppäinten oletusarvo on False
.
Suositeltavat lukemat:
- Python JSON - CSV ja päinvastoin
- Python XML JSON: iin ja päinvastoin
- Python simplejson