【发布时间】:2015-04-27 21:44:02
【问题描述】:
我遇到了一个问题,我找不到处理它的好方法。我举个例子吧。
假设我正在使用 Python 请求对 Amtrack 进行 API 调用,以获取有关其票证的信息。返回以 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"
}
],
}
}
我正在生成一个包含大约 1,000,000 张票的 JSON 文件。
我想把它放到一个 Vertica 表中,所以我使用了内置的 fjsonparser,它运行良好,除了 Custom_Fields 键。我可以把它放到一个表格中,但是该列充满了几乎无法阅读的垃圾,我什至无法将其放入此处的文本中。
我正在想办法解决这个问题。我需要 Custom_Fields 中的数据,但由于格式的原因,将其解析为字符串是不可行的。当我在 API 拉取后写入文件时,我考虑将所有自定义字段添加到他们自己的 JSON 文件中。比如:
CF_list = data['tickets']['custom_fields']
with open(filePath, mode='w') as F:
json.dump(CF_list, F)
这里的问题是我无法将 Custom_Fields 绑定回它们来自的票证。我需要一些帮助。
谢谢!
【问题讨论】: