Разбор JSON с помощью Glom

Я пытаюсь разобрать объект JSON, и мне трудно получить доступ к значению таким образом, чтобы затем я мог объединиться с другим df. Путь для значения: QueryResponse.Purchase[0].Line[0].Amount

Эта спецификация даст мне первое значение:

      glom(data, ('QueryResponse.Purchase', ['Line'], (['0'], ['Amount'])))

но не Amounts содержится в другом Lines. Я могу получить доступ к другому Amount values, но потом не смогли понять, как объединить это с моим df, содержащим значения из Purchase уровень

2 ответа

Без примера данных немного сложно решить проблему.

Однако если предположить, что ваши данные выглядят примерно так:

      data = {"QueryResponse": 
          {"Purchase": [
             {"Line": {"Amount": 10}}, 
             {"Line": {"Amount": 20}}
            ]
          }
        }

Затем запрос на получение всех Amount ценности от каждого Line запись помещает полный путь к желаемому значению в списке.

      >>> glom(data, ('QueryResponse.Purchase', ['Line.Amount']))
[10, 20]

Основываясь на Glom Tutorial, вам необходимо указать «данные» перед их использованием в методе glom.

Пример (с сайта):

      from glom import glom

# Basic deep get

data = {'a': {'b': {'c': 'd'}}}

print(glom(data, 'a.b.c'))

В вашем случае вам также нужно будет импортировать Json вверху (но вы, вероятно, уже это сделали).

Другие вопросы по тегам