| title | Python JSON Modul - Python Spickzettel |
|---|---|
| description | Python verfügt über das integrierte Modul json, mit dem wir mit JSON (JavaScript Object Notation) Daten arbeiten können. |
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 jsonEin 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.
nullist das JSON-Äquivalent zu PythonNone.
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
}
}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'
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'>
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}
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))- Cheatsheet: JSON und YAML
- Cheatsheet: Dictionaries
- Cheatsheet: Dateien lesen und schreiben
- Blog: Python-Datentypen
- dict()
- str()
- open()