Գտեք JSON-ի խորությունը
JSON օբյեկտը վեբ հավելվածներում և սերվերներում օգտագործվող ֆայլի կամ տվյալների փոխանցման, պահպանման և հաղորդակցման ամենատարածված ձևաչափն է։ (JSON - անգլերենում՝
JavaScript Object Notation
, հայերենում՝ Ջավասկրիպտ առարկայի նշագրում): JSON օբյեկտը պարզ է և հեշտ ընթեռնելի և կարող է վերլուծվել ու ստեղծվել բազմաթիվ լեզուներով: Ձևաչափը, ըստ էության, «բանալի:արժեք» զույգերի՝ (key:value)
, չդասավորված հավաքածու է (ինչպես բառարանը):
key:value
զույգերը գրվում են հետևյալ ձևով."key": value
Ցանկացած վավեր JSON տվյալների տեսակը կազմվում է թե՛
"key"
«բանալիից» և թե՛ value
«արժեքից»: Այս զույգերը բաժանված են ստորակետերով և փակված են փակագծերով { }
՝ օբյեկտ կազմելու համար։ Արժեքները կարող են լինել մեկ այլ JSON օբյեկտ, ինչի դեպքում կավելանա JSON
օբյեկտի խորությունը:Ձեր խնդիրն է ստեղծել Python ֆունկցիա՝
calculate_depth
անունով, որը որպես արգումենտ ստանում է JSON օբյեկտ և վերադարձնում օբյեկտի առավելագույն խորությունը։JSON օբյեկտը կներկայացվի որպես տող: Խնդիրը չբարդացնելու համար կարող եք ենթադրել, որ JSON օբյեկտը կազմված կլինի ճշգրիտ ձևով, և բոլոր բանալիները (key) կլինեն տողեր (string): Սակայն հաշվի առեք, որ արժեքները (values) կարող են լինել տողեր, թվեր, տրամաբանական, զրոյական կամ այլ JSON օբյեկտներ (ներկայացված որպես ներդիր բառարաններ):
Ինչպե՞ս Python-ում JSON տողը փոխակերպել բառարանի:
Python-ում կարող ենք կիրառել
json
մոդուլը և JSON օբյեկտի տողային (string) ձևից ստանալ Python-ի բառարան.import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
# Use json.loads() to convert the string to a dictionary
dict_obj = json.loads(json_string)
print(dict_obj)
# Output: {'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": { "year_2023": 8000000, "year_2022": 7900000 }}}} | 4 |
Նշում․ խորությունը որոշվում է ոչ թե
բանալի:արժեք
զույգերի քանակով, այլ ներդրված JSON օբյեկտների առավելագույն մակարդակով:Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB