У меня проблема, и я не могу найти хороший способ справиться с ней. Я приведу пример.Обработка вложенных массивов/Список в возврате JSON с помощью fjsonparser в Vertica
Скажем, я делаю вызов API для Amtrack с помощью запросов Python для получения информации об их билетах. Возвращение возвращается в формате JSON как это:
{
"tickets": [
{
"id": 12345,
"external_id": "abcdefg",
"created_at": "2015-04-27T22:55:29Z",
"updated_at": "2015-04-27T10:38:52Z",
"type": "commuter",
"priority": "high",
"status": "open",
"recipient": "Amanda",
"requester_id": 1234567,
"route_id": 1234567,
"tags": ["round-trip", "commuter"],
"via": {
"channel": "web"
},
"custom_fields": [
{
"id": 27642,
"value": "Commuter Ticket"
},
{
"id": 27648,
"value": "reoccuring charge"
}
],
}
}
Я генерации файла JSON около 1 млн билетов.
Я хочу поместить это в таблицу Vertica, поэтому я использую встроенный fjsonparser, и он отлично подходит, за исключением ключа Custom_Fields. Я могу получить его в таблицу, но столбец заполнен едва удобочитаемым мусором, который я даже не могу вставить в текст здесь.
Я пытаюсь найти хороший способ справиться с этим. Мне нужны данные внутри Custom_Fields, но из-за форматирования анализ его как строки невозможен. Я подумал о добавлении всех настраиваемых полей в свой собственный JSON-файл, когда я пишу в файл после API-интерфейса. Что-то вроде:
CF_list = data['tickets']['custom_fields']
with open(filePath, mode='w') as F:
json.dump(CF_list, F)
Проблема здесь заключается в том, что у меня не будет никакого способа завязывания Custom_Fields назад к билету они пришли. Мне нужна помощь.
Спасибо!