Python JSON Modul

JSON steht für JavaScript Object Notation und ist ein leichtgewichtiges Format zum Speichern und Übertragen von Daten. JSON wird häufig verwendet, wenn Daten von einem Server an eine Webseite gesendet werden.

Python verfügt über das eingebaute Modul json, mit dem wir mit JSON-Daten arbeiten können.

import json

JSON-Datentypen

Ein JSON-Objekt ähnelt einem Python-Dictionary, weist jedoch die folgenden Unterschiede auf:

  • JSON-Schlüssel sind immer Zeichenketten (Strings).
  • Zeichenketten sind immer in doppelten Anführungszeichen eingeschlossen.
  • Ein JSON-Boolean beginnt mit Kleinbuchstaben.
  • null ist das JSON-Äquivalent zu Python None.

Die von JSON unterstützten Datentypen sind:

  • String
  • Number
  • boolean
  • null
  • Object
  • Array

Beispiel:

{
  "name": "Charles",
  "age": 33,
  "has_hair": false,
  "hobbies": ["photography", "running"],
  "appearance": {
    "eyes": "brown",
    "hair_color": null
  }
}

JSON loads()-Methode

Mit der Methode json.loads können Sie ein JSON-Objekt parsen und es in ein Python-Dictionary umwandeln:

import json

# Zu parsende JSON-Zeichenkette
json_person = '{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
# JSON-Zeichenkette in Python-Dictionary parsen
python_person = json.loads(json_person)
python_person
{'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
type(python_person)
<class 'dict'>
# Auf den Dictionary-Wert mit der get-Methode zugreifen
python_person.get("name")
'Charles'

JSON dumps()-Methode

Der umgekehrte Weg. Die Methode dumps() wandelt ein Python-Objekt in eine JSON-Zeichenkette um:

import json

# Zu konvertierendes Python-Dictionary
python_person = {'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
# Python-Objekt in JSON-Zeichenkette konvertieren
json_person = json.dumps(python_person)

json_person
'{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
type(json_person)
<class 'str'>

JSON-Dateien lesen und schreiben

Eine JSON-Datei lesen

import json
# JSON-Datei lesen
with open("filename.json", "r") as f:
    json_content = json.loads(f.read())

# Hinweis: Diese Zeile scheint redundant zu sein - json_content ist bereits geparst
json.loads(json_content)
{'name': 'Charles', 'age': 33, 'has_hair': False}

Eine JSON-Datei schreiben

import json

person = {'name': 'Charles', 'age': 33}

# Python-Dictionary in JSON-Datei schreiben
with open("filename.json", "w") as f:
    f.write(json.dumps(person))