Определение глубины JSON-объекта
JSON-объект — это популярный формат данных, широко используемый для хранения и передачи информации. Он прост и удобен для чтения, а его разбор и генерация поддерживаются множеством языков программирования. По сути, это неупорядоченный набор пар
ключ:значение
(как словарь). Пары ключ:значение
имеют следующий вид:"key": value
Где и
"key"
, и value
являются любыми допустимыми типами данных JSON. Эти пары разделяются запятыми и заключаются в фигурные скобки { }
, образуя объект. Значением может быть другой JSON-объект, увеличивая глубину исходного JSON-объекта.Ваша задача — создать функцию на Python под названием
calculate_depth
, которая принимает JSON-объект в качестве аргумента и возвращает его максимальную глубину.JSON-объект будет предоставлен в виде строки. Для упрощения можно предположить, что JSON будет корректно отформатирован, и все ключи являются строками. Однако значения могут быть строками, числами, булевыми значениями, null или другими JSON-объектами (представленными как вложенные словари).
Как преобразовать JSON-строку в словарь в Python?
Вы можете использовать модуль
json
в Python для преобразования строкового представления JSON-объекта в словарь Python:import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
# Используем json.loads() для преобразования строки в словарь
dict_obj = json.loads(json_string)
print(dict_obj)
# Вывод: {'name': 'John', 'age': 30, 'city': 'New York'}
В этом примере
json.loads(json_string)
используется для преобразования json_string
в словарь Python. Функция loads
означает "load string" (загрузить строку). Затем вы можете использовать этот словарь в вашей Python-программе как обычный словарь.Ваша функция должна вернуть одно целое число — максимальную глубину входного JSON-объекта. Глубина определяется как максимальный уровень вложенности JSON-объектов. JSON-объект верхнего уровня имеет глубину 1, JSON-объект внутри другого JSON-объекта имеет глубину 2 и так далее.
Ввод | Вывод |
{ "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 |
Примечание: Глубина не определяется количеством пар
ключ:значение
, а максимальным уровнем вложенности JSON-объектов.Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB