在 Vertica 中使用 fjsonparser 处理 JSON return 中的嵌套 Arrays/List
Handling Nested Arrays/List in JSON return with fjsonparser in Vertica
我 运行 遇到了一个问题,但我找不到处理它的好方法。我举个例子。
假设我正在使用 Python 请求向 Amtrack 发出 API 调用以获取有关他们的票的信息。 return 以 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 table,所以我使用内置的 fjsonparser,它运行良好,但 Custom_Fields 键除外。我可以将它放入 table,但该专栏充满了几乎无法阅读的垃圾,我什至无法将其放入此处的文本中。
我正在想办法解决这个问题。我需要 Custom_Fields 中的数据,但由于格式原因,将其解析为字符串是不可行的。当我在 API 拉取后写入文件时,我考虑将所有自定义字段添加到它们自己的 JSON 文件中。类似于:
CF_list = data['tickets']['custom_fields']
with open(filePath, mode='w') as F:
json.dump(CF_list, F)
这里的问题是我无法将 Custom_Fields 与他们来自的票联系起来。我需要一些帮助。
谢谢!
将 flatten_arrays=true
添加到 FJSONPARSER
。这将展平嵌套数组。
我 运行 遇到了一个问题,但我找不到处理它的好方法。我举个例子。
假设我正在使用 Python 请求向 Amtrack 发出 API 调用以获取有关他们的票的信息。 return 以 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 table,所以我使用内置的 fjsonparser,它运行良好,但 Custom_Fields 键除外。我可以将它放入 table,但该专栏充满了几乎无法阅读的垃圾,我什至无法将其放入此处的文本中。
我正在想办法解决这个问题。我需要 Custom_Fields 中的数据,但由于格式原因,将其解析为字符串是不可行的。当我在 API 拉取后写入文件时,我考虑将所有自定义字段添加到它们自己的 JSON 文件中。类似于:
CF_list = data['tickets']['custom_fields']
with open(filePath, mode='w') as F:
json.dump(CF_list, F)
这里的问题是我无法将 Custom_Fields 与他们来自的票联系起来。我需要一些帮助。
谢谢!
将 flatten_arrays=true
添加到 FJSONPARSER
。这将展平嵌套数组。