【问题标题】:How to add a field in JSON structure automatically如何在 JSON 结构中自动添加字段
【发布时间】:2021-11-23 09:41:46
【问题描述】:

我正在使用 bigquery 并使用以下命令获取架构详细信息

bq show --schema --format=prettyjson [PROJECT_ID]:[DATASET].[TABLE] 

上面的命令给了我类似下面的结构

[
  {
    "mode": "NULLABLE",
    "name": "flt_date",
    "type": "DATE"
  },
  {
    "mode": "NULLABLE",
    "name": "month",
    "type": "INTEGER"
  },
  {
    "mode": "NULLABLE",
    "name": "year",
    "type": "INTEGER"
  },
]

我想在每个数组结构中添加一个名为“description”的额外字段,任何人都可以帮助我了解如何获取它。任何脚本或任何命令都会有所帮助。新结构将是

[
  { "description" : " ",
    "mode": "NULLABLE",
    "name": "flt_date",
    "type": "DATE"
  },
  { "description" : " ",
    "mode": "NULLABLE",
    "name": "month",
    "type": "INTEGER"
  },
  { "description" : " ",
    "mode": "NULLABLE",
    "name": "year",
    "type": "INTEGER"
  },
]

注意:我现有的表没有列名称的任何描述,我需要稍后使用 terraform 添加。任何建议将不胜感激

【问题讨论】:

    标签: json python-3.x google-bigquery terraform


    【解决方案1】:

    遍历每个并使用.update()

    json = [
      {
        "mode": "NULLABLE",
        "name": "flt_date",
        "type": "DATE"
      },
      {
        "mode": "NULLABLE",
        "name": "month",
        "type": "INTEGER"
      },
      {
        "mode": "NULLABLE",
        "name": "year",
        "type": "INTEGER"
      },
    ]
    
    for each in json:
        each.update({"description":" "})
    

    【讨论】:

    • 在进行更改时,我遇到了两个问题 - “预期为 JSON 对象、数组或文字.json”虽然,我已经修复了第一个并修改了相同的 { "json" : [ { “模式”:“NULLABLE”,“名称”:“flt_date”,“类型”:“日期”},{“模式”:“NULLABLE”,“名称”:“月份”,“类型”:“整数”} , { "mode": "NULLABLE", "name": "year", "type": "INTEGER" } ] } for each in json: each.update({"description":" "}) 但这开始给我第二个错误 - “文件结束预期 JSON”我可以知道如何解决这个问题吗?
    • 你能分享导致这种情况的完整代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2020-02-29
    • 2018-06-20
    相关资源
    最近更新 更多