Einführung
Die Vielseitigkeit von Python erstreckt sich auch auf die Arbeit mit JSON-Daten, einem weit verbreiteten Format zur Speicherung und zum Austausch von Informationen. JSON-Strukturen können einfach oder komplex sein, mit verschachtelten Elementen, ähnlich wie Python-Dictionaries und -Listen. In diesem Tutorial lernen Sie anhand praktischer Übungen, wie Sie in Python auf verschachtelte JSON-Strukturen zugreifen und Daten daraus extrahieren können.
Am Ende dieses Labors werden Sie in der Lage sein, sich sicher in JSON-Objekten zu bewegen, auf tief verschachtelte Schlüssel zuzugreifen und mit verschachtelten Arrays in Python-Anwendungen zu arbeiten.
JSON in Python verstehen
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das sowohl für Menschen lesbar als auch für Maschinen parsbar ist. In Python werden JSON-Objekte als Dictionaries dargestellt und JSON-Arrays als Listen.
Beginnen wir mit der Erstellung eines einfachen Python-Skripts, um JSON-Daten zu untersuchen:
Öffnen Sie die WebIDE und erstellen Sie eine neue Datei, indem Sie im Menü auf "File > New File" klicken.
Speichern Sie die Datei als
basic_json.pyim Verzeichnis/home/labex/project/json_practice.Fügen Sie den folgenden Code zu
basic_json.pyhinzu:
import json
## A simple JSON object (represented as a Python dictionary)
person = {
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com",
"is_employed": True,
"hobbies": ["reading", "hiking", "coding"]
}
## Convert Python dictionary to JSON string
json_string = json.dumps(person, indent=2)
print("JSON as string:")
print(json_string)
print("\n" + "-" * 50 + "\n")
## Convert JSON string back to Python dictionary
parsed_json = json.loads(json_string)
print("Python dictionary:")
print(parsed_json)
print("\n" + "-" * 50 + "\n")
## Accessing basic elements
print("Basic access examples:")
print(f"Name: {parsed_json['name']}")
print(f"Age: {parsed_json['age']}")
print(f"First hobby: {parsed_json['hobbies'][0]}")
- Führen Sie das Skript aus, indem Sie ein Terminal in der WebIDE öffnen und ausführen:
cd /home/labex/project/json_practice
python3 basic_json.py
Sie sollten die folgende Ausgabe sehen:
JSON as string:
{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com",
"is_employed": true,
"hobbies": [
"reading",
"hiking",
"coding"
]
}
--------------------------------------------------
Python dictionary:
{'name': 'John Doe', 'age': 30, 'email': 'john.doe@example.com', 'is_employed': True, 'hobbies': ['reading', 'hiking', 'coding']}
--------------------------------------------------
Basic access examples:
Name: John Doe
Age: 30
First hobby: reading
Den Code verstehen
json.dumps()konvertiert ein Python-Objekt in einen JSON-formatierten Stringjson.loads()parst einen JSON-String und konvertiert ihn in ein Python-Objekt- Um auf Elemente in einem JSON-Objekt zuzugreifen, verwenden Sie die Dictionary-Syntax:
object_name['key'] - Um auf Elemente in einem JSON-Array zuzugreifen, verwenden Sie die Listenindizierung:
array_name[index]
Dieses Beispiel demonstriert die grundlegenden Operationen für die Arbeit mit JSON in Python. Im nächsten Schritt werden wir untersuchen, wie man auf verschachtelte JSON-Strukturen zugreift.
Zugriff auf verschachtelte Dictionary-Schlüssel
JSON-Objekte enthalten oft verschachtelte Strukturen. In Python können wir auf verschachtelte Daten mit mehreren eckigen Klammern oder durch Verkettung von Dictionary-Schlüsseln zugreifen.
Erstellen wir ein neues Skript, um verschachtelte JSON-Objekte zu untersuchen:
Erstellen Sie in der WebIDE eine neue Datei und speichern Sie sie als
nested_dict.pyim Verzeichnis/home/labex/project/json_practice.Fügen Sie den folgenden Code zu
nested_dict.pyhinzu:
import json
## JSON with nested object
user_data = {
"name": "John Doe",
"age": 30,
"contact": {
"email": "john.doe@example.com",
"phone": "555-1234",
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
},
"preferences": {
"theme": "dark",
"notifications": True
}
}
## Let's prettify and print the JSON structure
print("Full JSON structure:")
print(json.dumps(user_data, indent=2))
print("\n" + "-" * 50 + "\n")
## Accessing nested elements
print("Accessing nested elements:")
print(f"Email: {user_data['contact']['email']}")
print(f"City: {user_data['contact']['address']['city']}")
print(f"Theme: {user_data['preferences']['theme']}")
print("\n" + "-" * 50 + "\n")
## Safe access with get() method
print("Safe access with get():")
## get() returns None if key doesn't exist, or a default value if specified
phone = user_data.get('contact', {}).get('phone', 'Not available')
country = user_data.get('contact', {}).get('address', {}).get('country', 'Not specified')
print(f"Phone: {phone}")
print(f"Country: {country}") ## This key doesn't exist but won't cause an error
- Führen Sie das Skript im Terminal aus:
cd /home/labex/project/json_practice
python3 nested_dict.py
Sie sollten eine ähnliche Ausgabe sehen wie:
Full JSON structure:
{
"name": "John Doe",
"age": 30,
"contact": {
"email": "john.doe@example.com",
"phone": "555-1234",
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
},
"preferences": {
"theme": "dark",
"notifications": true
}
}
--------------------------------------------------
Accessing nested elements:
Email: john.doe@example.com
City: Anytown
Theme: dark
--------------------------------------------------
Safe access with get():
Phone: 555-1234
Country: Not specified
Verschachtelten Zugriff verstehen
Bei der Arbeit mit verschachtelten JSON-Strukturen können Sie auf verschachtelte Elemente zugreifen, indem Sie Schlüssel mit eckigen Klammern verketten:
## Syntax for nested access
value = json_data['key1']['key2']['key3']
Dieser Ansatz kann jedoch zu Fehlern führen, wenn ein Schlüssel in der Kette nicht existiert. Die sicherere Methode ist die Verwendung der get()-Funktion, mit der Sie einen Standardwert angeben können, wenn ein Schlüssel fehlt:
## Safe access with get() method
value = json_data.get('key1', {}).get('key2', {}).get('key3', 'default_value')
Dieses sichere Zugriffsmuster ist besonders wertvoll, wenn Sie mit API-Antworten oder anderen externen JSON-Daten arbeiten, deren Struktur möglicherweise nicht konsistent ist.
Arbeiten mit verschachtelten Arrays in JSON
JSON-Daten enthalten oft Arrays (Listen in Python), die andere Objekte oder Arrays enthalten können. Lassen Sie uns untersuchen, wie man auf Elemente innerhalb verschachtelter Arrays zugreift.
Erstellen Sie in der WebIDE eine neue Datei und speichern Sie sie als
nested_arrays.pyim Verzeichnis/home/labex/project/json_practice.Fügen Sie den folgenden Code zu
nested_arrays.pyhinzu:
import json
## JSON with nested arrays
company_data = {
"name": "Tech Innovations Inc",
"founded": 2010,
"departments": [
{
"name": "Engineering",
"employees": [
{"name": "Alice Johnson", "role": "Software Engineer", "skills": ["Python", "JavaScript", "AWS"]},
{"name": "Bob Smith", "role": "DevOps Engineer", "skills": ["Docker", "Kubernetes", "Linux"]}
]
},
{
"name": "Marketing",
"employees": [
{"name": "Carol Williams", "role": "Marketing Manager", "skills": ["SEO", "Content Strategy"]},
{"name": "Dave Brown", "role": "Social Media Specialist", "skills": ["Facebook Ads", "Instagram"]}
]
}
],
"locations": ["San Francisco", "New York", "London"]
}
## Print the JSON structure
print("Company Data:")
print(json.dumps(company_data, indent=2))
print("\n" + "-" * 50 + "\n")
## Accessing elements in arrays
print("Accessing array elements:")
print(f"First location: {company_data['locations'][0]}")
print(f"Number of departments: {len(company_data['departments'])}")
print(f"First department name: {company_data['departments'][0]['name']}")
print("\n" + "-" * 50 + "\n")
## Iterating through nested arrays
print("All employees and their skills:")
for department in company_data['departments']:
dept_name = department['name']
print(f"\nDepartment: {dept_name}")
print("-" * 20)
for employee in department['employees']:
print(f" {employee['name']} ({employee['role']})")
print(f" Skills: {', '.join(employee['skills'])}")
print()
## Finding specific data in nested arrays
print("-" * 50 + "\n")
print("Finding employees with Python skills:")
for department in company_data['departments']:
for employee in department['employees']:
if "Python" in employee['skills']:
print(f" {employee['name']} in {department['name']} department")
- Führen Sie das Skript im Terminal aus:
cd /home/labex/project/json_practice
python3 nested_arrays.py
Sie sollten eine ähnliche Ausgabe sehen wie:
Company Data:
{
"name": "Tech Innovations Inc",
"founded": 2010,
"departments": [
{
"name": "Engineering",
"employees": [
{
"name": "Alice Johnson",
"role": "Software Engineer",
"skills": [
"Python",
"JavaScript",
"AWS"
]
},
{
"name": "Bob Smith",
"role": "DevOps Engineer",
"skills": [
"Docker",
"Kubernetes",
"Linux"
]
}
]
},
{
"name": "Marketing",
"employees": [
{
"name": "Carol Williams",
"role": "Marketing Manager",
"skills": [
"SEO",
"Content Strategy"
]
},
{
"name": "Dave Brown",
"role": "Social Media Specialist",
"skills": [
"Facebook Ads",
"Instagram"
]
}
]
}
],
"locations": [
"San Francisco",
"New York",
"London"
]
}
--------------------------------------------------
Accessing array elements:
First location: San Francisco
Number of departments: 2
First department name: Engineering
--------------------------------------------------
All employees and their skills:
Department: Engineering
--------------------
Alice Johnson (Software Engineer)
Skills: Python, JavaScript, AWS
Bob Smith (DevOps Engineer)
Skills: Docker, Kubernetes, Linux
Department: Marketing
--------------------
Carol Williams (Marketing Manager)
Skills: SEO, Content Strategy
Dave Brown (Social Media Specialist)
Skills: Facebook Ads, Instagram
--------------------------------------------------
Finding employees with Python skills:
Alice Johnson in Engineering department
Verschachtelten Array-Zugriff verstehen
Die Arbeit mit verschachtelten Arrays in JSON beinhaltet eine Kombination aus:
- Indizierter Zugriff (Indexed access): Verwenden Sie eckige Klammern mit einem Index, um auf bestimmte Array-Elemente zuzugreifen (
array[0]) - Verschachtelter Eigenschaftszugriff (Nested property access): Verketten Sie Dictionary-Schlüssel und Array-Indizes (
data['departments'][0]['employees']) - Iteration: Verwenden Sie Schleifen, um mehrere Elemente in Arrays zu verarbeiten
Das gebräuchlichste Muster für die Arbeit mit verschachtelten Arrays ist die Verwendung von verschachtelten for-Schleifen:
for outer_item in json_data['outer_array']:
for inner_item in outer_item['inner_array']:
## Process the inner_item
print(inner_item['property'])
Dieser Ansatz ermöglicht es Ihnen, komplexe verschachtelte Strukturen zu durchlaufen und die spezifischen Daten zu extrahieren, die Sie benötigen.
Umgang mit fehlenden Schlüsseln und Fehlervermeidung
Bei der Arbeit mit komplexen JSON-Strukturen, insbesondere aus externen Quellen wie APIs, ist es wichtig, potenzielle Fehler zu behandeln, die auftreten, wenn Schlüssel fehlen. Lassen Sie uns Techniken zum sicheren Zugriff auf verschachtelte JSON-Daten untersuchen.
Erstellen Sie in der WebIDE eine neue Datei und speichern Sie sie als
error_handling.pyim Verzeichnis/home/labex/project/json_practice.Fügen Sie den folgenden Code zu
error_handling.pyhinzu:
import json
## JSON with inconsistent structure
api_response = {
"status": "success",
"data": {
"users": [
{
"id": 1,
"name": "John Doe",
"contact": {
"email": "john.doe@example.com",
"phone": "555-1234"
},
"roles": ["admin", "user"]
},
{
"id": 2,
"name": "Jane Smith",
## Missing contact info
"roles": ["user"]
},
{
"id": 3,
"name": "Bob Johnson",
"contact": {
## Only has email, no phone
"email": "bob.johnson@example.com"
}
## Missing roles
}
]
}
}
print("API Response Structure:")
print(json.dumps(api_response, indent=2))
print("\n" + "-" * 50 + "\n")
## Approach 1: Using try-except blocks
print("Method 1: Using try-except blocks")
print("-" * 30)
for user in api_response["data"]["users"]:
print(f"User: {user['name']}")
## Get email
try:
email = user['contact']['email']
print(f" Email: {email}")
except (KeyError, TypeError):
print(" Email: Not available")
## Get phone
try:
phone = user['contact']['phone']
print(f" Phone: {phone}")
except (KeyError, TypeError):
print(" Phone: Not available")
## Get roles
try:
roles = ", ".join(user['roles'])
print(f" Roles: {roles}")
except (KeyError, TypeError):
print(" Roles: None assigned")
print()
## Approach 2: Using get() method with defaults
print("\n" + "-" * 50 + "\n")
print("Method 2: Using get() method with defaults")
print("-" * 30)
for user in api_response["data"]["users"]:
print(f"User: {user['name']}")
## Get contact info with nested get() calls
contact = user.get('contact', {})
email = contact.get('email', 'Not available')
phone = contact.get('phone', 'Not available')
print(f" Email: {email}")
print(f" Phone: {phone}")
## Get roles with default empty list
roles = user.get('roles', [])
roles_str = ", ".join(roles) if roles else "None assigned"
print(f" Roles: {roles_str}")
print()
- Führen Sie das Skript im Terminal aus:
cd /home/labex/project/json_practice
python3 error_handling.py
Sie sollten eine ähnliche Ausgabe sehen wie:
API Response Structure:
{
"status": "success",
"data": {
"users": [
{
"id": 1,
"name": "John Doe",
"contact": {
"email": "john.doe@example.com",
"phone": "555-1234"
},
"roles": [
"admin",
"user"
]
},
{
"id": 2,
"name": "Jane Smith",
"roles": [
"user"
]
},
{
"id": 3,
"name": "Bob Johnson",
"contact": {
"email": "bob.johnson@example.com"
}
}
]
}
}
--------------------------------------------------
Method 1: Using try-except blocks
------------------------------
User: John Doe
Email: john.doe@example.com
Phone: 555-1234
Roles: admin, user
User: Jane Smith
Email: Not available
Phone: Not available
Roles: user
User: Bob Johnson
Email: bob.johnson@example.com
Phone: Not available
Roles: None assigned
--------------------------------------------------
Method 2: Using get() method with defaults
------------------------------
User: John Doe
Email: john.doe@example.com
Phone: 555-1234
Roles: admin, user
User: Jane Smith
Email: Not available
Phone: Not available
Roles: user
User: Bob Johnson
Email: bob.johnson@example.com
Phone: Not available
Roles: None assigned
Techniken zur Fehlerbehandlung verstehen
Das Beispiel demonstriert zwei Hauptansätze für den sicheren Zugriff auf verschachtelte JSON-Daten:
Try-Except-Blöcke
- Umschließen Sie potenziell riskanten Zugriff in Try-Except-Blöcken
- Fangen Sie KeyError (fehlender Dictionary-Schlüssel) und TypeError (Versuch, auf einen Schlüssel in einem Nicht-Dictionary zuzugreifen) ab
- Stellen Sie Fallback-Werte bereit, wenn Fehler auftreten
Verkettete get()-Methode
- Verwenden Sie die Dictionary-get()-Methode, die einen Standardwert als zweites Argument annimmt
- Verketten Sie mehrere get()-Aufrufe für verschachtelte Strukturen
- Bietet saubereren Code ohne Ausnahmebehandlung
Der Ansatz mit der get()-Methode wird im Allgemeinen wegen seiner Lesbarkeit und Prägnanz bevorzugt, wenn es um verschachtelte JSON-Strukturen geht. Er ermöglicht es Ihnen, Standardwerte auf jeder Verschachtelungsebene bereitzustellen.
## Safe nested access pattern
value = data.get('level1', {}).get('level2', {}).get('level3', 'default_value')
Die Verwendung dieser Fehlerbehandlungstechniken macht Ihren Code robuster, wenn Sie mit JSON-Daten aus verschiedenen Quellen arbeiten.
Praktische Übung: Erstellen eines JSON-Datenextraktors
Lassen Sie uns Ihr Wissen in die Praxis umsetzen, indem wir ein Programm erstellen, das spezifische Informationen aus einer komplexen JSON-Struktur extrahiert. Dies könnte ein reales Szenario darstellen, in dem Sie JSON-Daten von einer API erhalten und diese verarbeiten müssen.
Erstellen Sie in der WebIDE eine neue Datei und speichern Sie sie als
json_extractor.pyim Verzeichnis/home/labex/project/json_practice.Fügen Sie den folgenden Code zu
json_extractor.pyhinzu:
import json
## A complex nested JSON structure (e.g., from a weather API)
weather_data = {
"location": {
"name": "New York",
"region": "New York",
"country": "United States of America",
"lat": 40.71,
"lon": -74.01,
"timezone": "America/New_York"
},
"current": {
"temp_c": 22.0,
"temp_f": 71.6,
"condition": {
"text": "Partly cloudy",
"icon": "//cdn.weatherapi.com/weather/64x64/day/116.png",
"code": 1003
},
"wind_mph": 6.9,
"wind_kph": 11.2,
"wind_dir": "ENE",
"humidity": 65,
"cloud": 75,
"feelslike_c": 22.0,
"feelslike_f": 71.6
},
"forecast": {
"forecastday": [
{
"date": "2023-09-20",
"day": {
"maxtemp_c": 24.3,
"maxtemp_f": 75.7,
"mintemp_c": 18.6,
"mintemp_f": 65.5,
"condition": {
"text": "Patchy rain possible",
"icon": "//cdn.weatherapi.com/weather/64x64/day/176.png",
"code": 1063
},
"daily_chance_of_rain": 85
},
"astro": {
"sunrise": "06:41 AM",
"sunset": "07:01 PM",
"moonrise": "10:15 AM",
"moonset": "08:52 PM"
},
"hour": [
{
"time": "2023-09-20 00:00",
"temp_c": 20.1,
"condition": {
"text": "Clear",
"icon": "//cdn.weatherapi.com/weather/64x64/night/113.png",
"code": 1000
},
"chance_of_rain": 0
},
{
"time": "2023-09-20 12:00",
"temp_c": 23.9,
"condition": {
"text": "Overcast",
"icon": "//cdn.weatherapi.com/weather/64x64/day/122.png",
"code": 1009
},
"chance_of_rain": 20
}
]
},
{
"date": "2023-09-21",
"day": {
"maxtemp_c": 21.2,
"maxtemp_f": 70.2,
"mintemp_c": 16.7,
"mintemp_f": 62.1,
"condition": {
"text": "Heavy rain",
"icon": "//cdn.weatherapi.com/weather/64x64/day/308.png",
"code": 1195
},
"daily_chance_of_rain": 92
},
"astro": {
"sunrise": "06:42 AM",
"sunset": "06:59 PM",
"moonrise": "11:30 AM",
"moonset": "09:15 PM"
}
}
]
}
}
def extract_weather_summary(data):
"""
Extract and format a weather summary from the provided data.
"""
try:
## Location information
location = data.get("location", {})
location_name = location.get("name", "Unknown")
country = location.get("country", "Unknown")
## Current weather
current = data.get("current", {})
temp_c = current.get("temp_c", "N/A")
temp_f = current.get("temp_f", "N/A")
condition = current.get("condition", {}).get("text", "Unknown")
humidity = current.get("humidity", "N/A")
## Forecast
forecast_days = data.get("forecast", {}).get("forecastday", [])
## Build summary string
summary = f"Weather Summary for {location_name}, {country}\n"
summary += f"==================================================\n\n"
summary += f"Current Conditions:\n"
summary += f" Temperature: {temp_c}°C ({temp_f}°F)\n"
summary += f" Condition: {condition}\n"
summary += f" Humidity: {humidity}%\n\n"
if forecast_days:
summary += "Forecast:\n"
for day_data in forecast_days:
date = day_data.get("date", "Unknown date")
day = day_data.get("day", {})
max_temp = day.get("maxtemp_c", "N/A")
min_temp = day.get("mintemp_c", "N/A")
condition = day.get("condition", {}).get("text", "Unknown")
rain_chance = day.get("daily_chance_of_rain", "N/A")
summary += f" {date}:\n"
summary += f" High: {max_temp}°C, Low: {min_temp}°C\n"
summary += f" Condition: {condition}\n"
summary += f" Chance of Rain: {rain_chance}%\n"
## Get sunrise and sunset times if available
astro = day_data.get("astro", {})
if astro:
sunrise = astro.get("sunrise", "N/A")
sunset = astro.get("sunset", "N/A")
summary += f" Sunrise: {sunrise}, Sunset: {sunset}\n"
summary += "\n"
return summary
except Exception as e:
return f"Error extracting weather data: {str(e)}"
## Print the full JSON data
print("Original Weather Data:")
print(json.dumps(weather_data, indent=2))
print("\n" + "-" * 60 + "\n")
## Extract and print the weather summary
weather_summary = extract_weather_summary(weather_data)
print(weather_summary)
## Save the summary to a file
with open("weather_summary.txt", "w") as file:
file.write(weather_summary)
print("\nWeather summary has been saved to 'weather_summary.txt'")
- Führen Sie das Skript im Terminal aus:
cd /home/labex/project/json_practice
python3 json_extractor.py
- Nach dem Ausführen des Skripts können Sie die generierte Zusammenfassungsdatei anzeigen:
cat weather_summary.txt
Sie sehen die formatierte Wetterzusammenfassung, die aus der komplexen JSON-Struktur extrahiert wurde.
Den JSON-Extraktor verstehen
Diese praktische Übung demonstriert mehrere wichtige Konzepte für die Arbeit mit verschachtelten JSON-Daten:
Sichere Datenextraktion
- Verwendung der
get()-Methode mit Standardwerten zur Behandlung fehlender Schlüssel - Zugriff auf verschachtelte Daten mit verketteten
get()-Aufrufen - Fehlerbehandlung mit Try-Except-Blöcken
- Verwendung der
Datentransformation
- Konvertieren von JSON-Daten in ein für Menschen lesbares Format
- Iterieren durch verschachtelte Arrays, um mehrere Elemente zu verarbeiten
- Extrahieren nur der relevanten Informationen aus einer komplexen Struktur
Defensives Programmieren
- Antizipieren und Behandeln potenzieller Probleme
- Bereitstellen von Standardwerten, wenn Daten fehlen
- Abfangen von Ausnahmen, um Programmabstürze zu verhindern
Dieses Muster der Extraktion, Transformation und Präsentation von JSON-Daten ist in vielen realen Anwendungen üblich, wie z. B.:
- Verarbeitung von API-Antworten
- Generieren von Berichten aus Daten
- Filtern und Anzeigen von Informationen für Benutzer
Indem Sie diesen Mustern folgen, können Sie zuverlässig mit JSON-Daten jeder Komplexität arbeiten.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie man mit verschachtelten JSON-Strukturen in Python arbeitet:
Grundlegende JSON-Handhabung - Konvertieren zwischen Python-Objekten und JSON-Strings mit
json.dumps()undjson.loads().Zugriff auf verschachtelte Dictionary-Schlüssel - Verwenden der verketteten eckigen Klammernotation, um auf tief verschachtelte Werte in JSON-Objekten zuzugreifen.
Arbeiten mit verschachtelten Arrays - Navigieren und Extrahieren von Daten aus Arrays innerhalb von JSON-Strukturen mithilfe von Indizierung und Iteration.
Techniken zur Fehlerbehandlung - Implementieren sicherer Zugriffsmuster mit Try-Except-Blöcken und der
get()-Methode zur Behandlung fehlender Schlüssel.Praktische Datenextraktion - Erstellen einer vollständigen Anwendung, die Daten aus einer komplexen JSON-Struktur extrahiert, transformiert und präsentiert.
Diese Fähigkeiten sind unerlässlich für die Arbeit mit Daten von APIs, Konfigurationsdateien und anderen Datenaustauschszenarien. Sie haben jetzt die Grundlage, um JSON-Daten beliebiger Komplexität in Ihren Python-Anwendungen sicher zu handhaben.
Für weiteres Lernen sollten Sie Folgendes in Betracht ziehen:
- Arbeiten mit realen APIs, die JSON-Daten zurückgeben
- Verwenden von Bibliotheken wie
pandaszur Analyse von JSON-Daten - Implementieren der JSON-Validierung mit
jsonschema - Erstellen und Bearbeiten benutzerdefinierter JSON-Strukturen



