[英]BigQuery LOAD_JOB with field that is sometimes an ARRAY and sometimes a single STRING value
您还可以在将文件加载到 BigQuery 之前使用您首选的编程语言对其进行预处理。 下面的 Python 代码将"subcategory"
的非列表值转换为列表,因此您的数据类型将是统一的。
import json
# {
# "data": [
# {
# "subcategory": "compulsory",
# "type": "WU04"
# },
# {
# "subcategory": [
# "compulsory",
# "court-order"
# ],
# "type": "WU04"
# }
# ]
# }
f = open("sample.json")
data_dict = json.load(f)
for entry in data_dict["data"]:
if not(isinstance(entry["subcategory"],list)):
entry["subcategory"] = [entry["subcategory"]]
with open("new_sample.json", "w") as outfile:
json.dump(data_dict, outfile,indent=2)
Output:
{
"data": [
{
"subcategory": [
"compulsory"
],
"type": "WU04"
},
{
"subcategory": [
"compulsory",
"court-order"
],
"type": "WU04"
}
]
}
注意:我创建了一个简单的示例数据,只是为了说明上述方法背后的逻辑。 如果您的 JSON 结构不同,请相应地调整代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.