У меня есть данные json, где я знаю вложенный ключ, который нужно изменить. Однако верхний уровень этого json будет динамическим, и не всегда будет фиксированный путь для перехода к этому ключу.
JSON (усечено для отображения):
{
"tables":[
{
"columns":[
{
"name":"latitude",
"action":"some-action",
"config":[
{
"key":"KEY-NEW",
"abc":"xxxxx",
}
]
}
]
}
]
}
Теперь я могу легко получить значение ключа KEY-NEW
как:
>>> s = objectpath.Tree(tables_dict)
>>> s.execute('$..key')
>>> for i in x: print i
...
KEY-NEW
Однако я не вижу никаких опций в objectPath для изменения этого значения json? Как я могу изменить его в одном вкладыше, как указано выше, учитывая, что путь к траверсе ['tables'][0]['columns'][0]['config'][0]['key']
не будет исправлен всегда. Индексы в этом могут измениться от 0 до любого.
Любой другой модуль, такой как objectPath, может легко добиться этого?