Arbeiten mit JSON-Daten
Nachdem wir nun wissen, wie man das JSON-Modul richtig importiert, wollen wir untersuchen, wie man es für gängige JSON-Operationen verwendet.
Erstellen eines vollständigen JSON-Beispiels
Erstellen Sie eine neue Datei namens json_operations.py
mit folgendem Inhalt:
## Complete example of working with JSON in Python
import json
## 1. Converting Python object to JSON string (serialization)
user = {
"name": "Charlie",
"age": 28,
"is_student": False,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
## Convert Python dictionary to JSON string
json_string = json.dumps(user, indent=2)
print("JSON string created from Python object:")
print(json_string)
print("\n" + "-"*50 + "\n")
## 2. Parse JSON string to Python object (deserialization)
parsed_user = json.loads(json_string)
print("Python object created from JSON string:")
print("Name:", parsed_user["name"])
print("Age:", parsed_user["age"])
print("Courses:", parsed_user["courses"])
print("City:", parsed_user["address"]["city"])
print("\n" + "-"*50 + "\n")
## 3. Writing JSON to a file
with open("/home/labex/project/user_data.json", "w") as json_file:
json.dump(user, json_file, indent=2)
print("JSON data written to user_data.json")
## 4. Reading JSON from a file
with open("/home/labex/project/user_data.json", "r") as json_file:
loaded_user = json.load(json_file)
print("JSON data loaded from file. User name:", loaded_user["name"])
Dieses Skript demonstriert vier gängige JSON-Operationen:
- Konvertieren eines Python-Objekts in eine JSON-Zeichenkette mit
json.dumps()
- Parsen einer JSON-Zeichenkette in ein Python-Objekt mit
json.loads()
- Schreiben von JSON-Daten in eine Datei mit
json.dump()
- Lesen von JSON-Daten aus einer Datei mit
json.load()
Führen Sie das Skript aus:
python3 /home/labex/project/json_operations.py
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
JSON string created from Python object:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": [
"Python",
"Data Science",
"Web Development"
],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
--------------------------------------------------
Python object created from JSON string:
Name: Charlie
Age: 28
Courses: ['Python', 'Data Science', 'Web Development']
City: Boston
--------------------------------------------------
JSON data written to user_data.json
JSON data loaded from file. User name: Charlie
Das Skript hat auch eine Datei namens user_data.json
erstellt. Werfen wir einen Blick auf ihren Inhalt:
cat /home/labex/project/user_data.json
Sie sollten die JSON-Daten mit der richtigen Einrückung sehen:
{
"name": "Charlie",
"age": 28,
"is_student": false,
"courses": ["Python", "Data Science", "Web Development"],
"address": {
"street": "123 Tech Lane",
"city": "Boston",
"zipcode": "02101"
}
}
Sie haben nun erfolgreich gelernt, wie man mit JSON-Daten in Python arbeitet, einschließlich der Vermeidung des Fehlers NameError: name 'json' is not defined
durch ordnungsgemäßes Importieren des Moduls.