Как изменить глубоко вложенное значение JSON с помощью Python ObjectPath - PullRequest
0 голосов
/ 07 марта 2019

У меня есть данные 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, может легко добиться этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...