python - 以空字典作为值将 JSON 文件加载到 BigQuery

标签 python google-bigquery

我正在将换行符分隔的 JSON 文件从 GCS 上传到 BigQuery。 JSON 文件中有一些字段包含值的字典,我可以毫无问题地将这些值导入 BigQuery,因为嵌套字段被分解为单独的列。因此,如果以下示例是 JSON 文件中的一行,则一切正常:

{"dict_field": {"value1": 1, "value2": 2}}

但是,如果文件中的一行有一个空字典作为 field_dict 的值,如下所示:

{"dict_field": {}}

我收到以下错误消息:

Exception: BigQuery job failed. Final error was: {'reason': 'invalid', 'message': "Unsupported empty struct type for field 'dict_field'"} [...]

我查看了 BigQuery 文档,没有找到关于将空字典作为值的任何规定限制。有谁知道这个问题是否有解决方法,或者我是否必须在将数据导入 BigQuery 之前手动清理数据?

最佳答案

正如@rodvictor 和@Fcojavmelo 所指出的,从 JSON 文件加载空字典目前是不可能的,尽管它在 BigQuery 文档的任何地方都没有明确提及,仅在此 issue/feature request 中提及。 .

总之,必须手动清理数据,并删除所有空字典以避免错误。

关于python - 以空字典作为值将 JSON 文件加载到 BigQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65904130/

相关文章:

python - 使用 parseString 时的 pyparsing.ParseException(searchString 有效)

Python 排序数据 for 循环和 if 语句

Python 输出带有按值着色的 float 的复杂行

google-bigquery - 你如何比较 BigQuery 中的两个数组?

sql - _TABLE_SUFFIX 丢失?

java - Having 或 Where 子句中的 BigQuery RANK()

python - 创建每个键有多个值的字典

python - 如何从 tensorflow 中的常量创建向量

java - 确定导致 Google Dataflow 作业失败的特定输入数据

apache-spark - 如何使用 BigQuery api 将 Spark 连接到 BigQuery