Python JSON: Lue, kirjoita, jäsennä JSON (esimerkkien avulla)

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 jsonmoduulia. Sinun on tuotava moduuli, ennen kuin voit käyttää sitä.

 import json

Jäsennä JSON Pythonissa

jsonModuuli 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.jsonJSON-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.txtkirjoitustilassa 'w'. Jos tiedostoa ei vielä ole olemassa, se luodaan. Sitten json.dump()muuntuu person_dictJSON-merkkijonoksi, joka tallennetaan person.txttiedostoon.

Kun suoritat ohjelman, person.txttiedosto 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 indentsekä sort_keyskä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 4vä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

Mielenkiintoisia artikkeleita...