Bestimme die Tiefe eines JSON
Ein JSON-Objekt ist ein beliebtes Datenformat mit vielfältigen Einsatzmöglichkeiten in der Datenspeicherung und -kommunikation. Es ist einfach und leicht lesbar und kann von einer Vielzahl von Sprachen geparst und generiert werden. Das Format ist im Wesentlichen eine ungeordnete Sammlung von
Schlüssel:Wert
-Paaren (ähnlich einem Wörterbuch). Schlüssel:Wert
-Paare haben die Form:"key": value
Dabei können sowohl
"key"
als auch value
beliebige gültige JSON-Datentypen sein. Diese Paare werden durch Kommas getrennt und von geschweiften Klammern { }
umgeben, um ein Objekt zu bilden. Werte können ein weiteres JSON-Objekt sein, was die Tiefe des JSON-Objekts erhöht.Deine Aufgabe ist es, eine Python-Funktion
calculate_depth
zu erstellen, die ein JSON-Objekt als Argument erhält und die maximale Tiefe des Objekts zurückgibt.Das JSON-Objekt wird als String präsentiert. Der Einfachheit halber kannst du davon ausgehen, dass das JSON-Objekt gut formatiert ist und alle Schlüssel Strings sind. Die Werte können jedoch Strings, Zahlen, Boolesche Werte, null oder andere JSON-Objekte sein (dargestellt als verschachtelte Wörterbücher).
Wie konvertiert man einen JSON-String in ein Wörterbuch in Python?
Du kannst das
json
-Modul in Python verwenden, um eine String-Repräsentation eines JSON-Objekts in ein Python-Wörterbuch zu konvertieren:import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
# Verwende json.loads(), um den String in ein Wörterbuch zu konvertieren
dict_obj = json.loads(json_string)
print(dict_obj)
# Ausgabe: {'name': 'John', 'age': 30, 'city': 'New York'}
In diesem Beispiel wird
json.loads(json_string)
verwendet, um den json_string
in ein Python-Wörterbuch zu konvertieren. Die Funktion loads
steht für "load string". Du kannst dieses Wörterbuch in deinem Python-Programm wie jedes andere Wörterbuch verwenden.Deine Funktion sollte eine einzelne ganze Zahl zurückgeben – die maximale Tiefe des eingegebenen JSON-Objekts. Die Tiefe ist definiert als die maximale Ebene verschachtelter JSON-Objekte. Das oberste JSON-Objekt hat eine Tiefe von 1, ein JSON-Objekt innerhalb eines anderen hat eine Tiefe von 2 und so weiter.
Eingabe | Ausgabe |
{ "name":"John", "age":30, "city":"New York"} | 1 |
{ "name":"John", "age":30, "city": { "name": "New York", "population": 8000000 }} | 2 |
{ "name":"John", "details": { "age":30, "city": { "name": "New York", "population": { "year2023": 8000000, "year2022": 7900000 }}}} | 4 |
Hinweis: Die Tiefe wird nicht durch die Anzahl der
Schlüssel:Wert
-Paare definiert, sondern durch die maximale Ebene verschachtelter JSON-Objekte.Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB