Привет, ЛОР!
Возник нубовопрос.
Есть json примерно вот такой структуры:
{
"main": [
{
"name": "CATEGORY0",
"img": "img0.png",
"subpages": [
{
"name": "name01",
"img": "img01.png",
"id": "27"
},
{
"name": "name02",
"img": "img02.png",
"id": "35"
}
]
},
{
"name": "CATEGORY1",
"img": "img1.png",
"subpages": [
{
"name": "name11",
"img": "img11.png",
"id": "850"
}
]
},
{
"name": "CATEGORY2",
"img": "img2.png",
"subpages": [
{
"name": "Victim name",
"img": "img21.png",
"id": "843"
},
{
"name": "name22",
"img": "img22.png",
"id": "999"
},
{
"name": "name23",
"img": "img23.png",
"id": "997"
}
]
},
{
"name": "CATEGORY3",
"img": "img3.png",
"subpages": [
{
"name": "name31",
"img": "img31.png",
"id": "979"
}
]
}
]
}
Задача: если в json'е присутсвует пара «name: Victim name», то добавить после этой секции еще одну.
Т.е.
#!/usr/bin/env python
# -*-coding: utf-8 -*-
import os
import json
json_data=open('categories.json')
data=json.load(json_data)
_str=json.dumps(data, indent=2, separators=(',',':'), ensure_ascii=False)
if 'Victim name' in _str:
print('Найдено в categories.json')
#здесь код по добавлению секции
else:
print('Victim name не найден.')
os.system('exit')
json_data.close()
Казалось бы, делай себе data['main']['category2'].append('some':stuff), но: проблема в том, что вложенность может быть различной, и я не могу предугадать количество индексов. ЛОР, как поступить? Метод перебора в цикле мне тоже кажется очень уж громоздским, ведь не известно, на каком уровне попадется «Victim name».
Еще в идеале хотелось бы вставлять нужную секцию сразу после секции с victim name. Такое вообще возможно?