如何在 JSON 结构中自动添加字段

Posted

技术标签:

【中文标题】如何在 JSON 结构中自动添加字段【英文标题】:How to add a field in JSON structure automatically 【发布时间】: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 添加。任何建议将不胜感激

【问题讨论】:

【参考方案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”我可以知道如何解决这个问题吗? 你能分享导致这种情况的完整代码吗?

以上是关于如何在 JSON 结构中自动添加字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GO 结构中处理来自 JSON 的日期字段

当 JSON 字段键是日期时,如何将 JSON 对象解组为 Golang 结构?

Go 中使用 JSON 时,如何区分空字段和未设置字段

如何使用 AWS Glue 从嵌套 json 字段/结构中的 DynamicFrame 访问数据

如何在插入时自动将服务器日期添加到文档中?

如何在下拉列表中添加文本字段自动建议?