Encontrar a Profundidade de um JSON
Um objeto JSON é um formato de dados popular com diversos usos no armazenamento e comunicação de dados. É simples e fácil de ler, e pode ser analisado e gerado por uma ampla variedade de linguagens. O formato é essencialmente uma coleção não ordenada de pares
key:value
(como um dicionário). Os pares key:value
têm a forma:"key": value
Em que tanto
"key"
como value
são qualquer tipo de dado válido em JSON. Estes pares são separados por vírgulas e envolvidos por chavetas { }
para formar um objeto. Os valores podem ser outro objeto JSON, aumentando a profundidade do objeto JSON.A sua tarefa é criar uma função Python
calculate_depth
que recebe um objeto JSON como argumento e retorna a profundidade máxima do objeto.O objeto JSON será apresentado como uma string. Para simplificar, pode assumir que o objeto JSON estará bem formatado e que todas as chaves serão strings. No entanto, os valores podem ser strings, números, booleanos, null ou outros objetos JSON (representados como dicionários aninhados).
Como converter uma string JSON para um dicionário em Python?
Você pode usar o módulo
json
em Python para converter uma representação em string de um objeto JSON em um dicionário Python:import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
# Use json.loads() para converter a string em um dicionário
dict_obj = json.loads(json_string)
print(dict_obj)
# Output: {'name': 'John', 'age': 30, 'city': 'New York'}
Neste exemplo,
json.loads(json_string)
é usado para converter a json_string
em um dicionário Python. A função loads
é abreviação de "load string". Você pode então usar este dicionário no seu programa Python como qualquer outro dicionário.A sua função deve retornar um único inteiro — a profundidade máxima do objeto JSON de entrada. A profundidade é definida como o nível máximo de objetos JSON aninhados. O objeto JSON de nível superior tem profundidade 1, um objeto JSON dentro de outro objeto JSON tem profundidade 2, e assim por diante.
Entrada | Saída |
{ "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 |
Nota: A profundidade não é definida pelo número de pares
key:value
, mas pelo nível máximo de objetos JSON aninhados.Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB