gpt4 book ai didi

json - 导入空值的json数据

转载 作者:行者123 更新时间:2023-12-04 22:40:10 26 4
gpt4 key购买 nike

来自import BigQuery 文档,

Note: Null values are not allowed

所以我假设 null 不允许出现在用于 BigQuery 导入的 json 格式数据中。但是,null 值实际上在常规 ETL 任务中非常常见(由于缺少数据)。导入此类json源文件应该有什么好的解决方案?请注意,我的数据包含嵌套结构,因此我不喜欢转换为 CSV 并使用 ,, 来表示 null 值。

我认为我可以做的一种方法是将所有 null 值分别替换为不同数据类型的默认值,例如,

  • 字符串:null -> 空字符串
  • 整数:null -> -1
  • float :null -> -1.0
  • ...

可是我不喜欢。我正在寻找更好的选择。

顺便说一句,我尝试使用包含 null 值的 json 文件执行 bq load。我收到以下错误:

Failure details:
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n'
- Expected '"' found 'n
...

我认为这是 null 用法的指示,是否正确?

编辑:如果我删除所有 null 字段,它似乎可以工作。我想这是处理 null 数据的方式。您不能为数据字段设置 null,但您可以不包含它。所以我需要一个过滤代码来删除我的原始 json 中的所有 null 字段。

最佳答案

您可以使用 JSON 格式的源文件导入 NULL 值 - 省略 NULL 值的键值对。

示例 - 假设您有这样的架构:

{
"name": "kind",
"type": "string"
},
{
"name": "fullName",
"type": "string",
},
{
"name": "age",
"type": "integer",
"mode": "nullable"
}

没有 NULL 值的记录可能如下所示:

{"kind": "person",
"fullName": "Some Person",
"age": 22
}

但是,当“age”为 NULL 时,试试这个(注意,没有“age”键):

{"kind": "person",
"fullName": "Some Person",
}

如果您对此有任何疑问,请告诉我们。我会做一个注释来改进有关将 NULL 值与 JSON 导入格式一起使用的文档。

关于json - 导入空值的json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com