Разбор 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 вверху (но вы, вероятно, уже это сделали).