【问题标题】:Handling Nested Arrays/List in JSON return with fjsonparser in Vertica在 Vertica 中使用 fjsonparser 处理 JSON 返回中的嵌套数组/列表
【发布时间】: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 绑定回它们来自的票证。我需要一些帮助。

谢谢!

【问题讨论】:

    标签: python sql json vertica


    【解决方案1】:

    flatten_arrays=true 添加到FJSONPARSER。这将使嵌套数组变平。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 2016-11-22
      • 2016-05-06
      • 1970-01-01
      • 2019-11-01
      相关资源
      最近更新 更多