BigQuery上传JSON数据报错No such field: category问题求助
报错原因
- 标准JSON格式不兼容:BigQuery要求导入的JSON必须使用双引号包裹键名和字符串值,你提供的JSON文件使用单引号包裹键与字符串,还存在未解析的
"转义字符,不符合JSON语法规范,导致BigQuery无法正确识别category键名,触发找不到字段的报错。 - 表Schema不匹配:你创建BigQuery表时定义的Schema中未包含
category字段,导入时BigQuery按照预设Schema校验,无法匹配到对应字段就会抛出该错误。 - JSON结构拆分错误:如果你选择了JSON Lines(每行一个JSON对象)的导入格式,你的JSON对象被换行拆分,首行仅为不完整的JSON片段,解析时无法识别出完整的
category键值对。
解决方案
- 修正JSON格式为标准规范
将所有单引号包裹的键名、字符串值替换为双引号,把转义字符"替换为标准双引号或转义后的\",修正后的JSON示例如下:
{ "category": "runtime_exception", "action": "Cannot read property 'isCurrentlySorted' of undefined", "value": "TypeError: Cannot read property \"isCurrentlySorted\" of undefined at Ht.SetSectionCurrentlySorted", "current_url": "/drugs-list", "serial_number": "A4001-2816", "session_id": null, "timeStamp": "2021-08-10T14:11:10.309Z", "localTimeStamp": "Tue Aug 10 2021 17:11:10 GMT+0300 (Israel Daylight Time)", "user": { "machine": null, "info": { "user_id": "yuval.haliva@eitanmedical.com" } }, "event_id": 9 }
- 核对BigQuery表Schema配置
- 手动指定Schema导入的场景:确认Schema中已添加
category字段,且字段类型设置为STRING,和JSON中对应值的类型匹配。 - 自动检测Schema导入的场景:确保JSON格式修正无误后,重新触发导入并开启自动检测Schema功能即可。
- 调整导入格式配置
- 若使用JSON Lines格式导入,需保证每个完整的JSON对象单独占一行,不要将单个JSON对象拆分为多行。
- 若允许存在Schema未定义的额外字段,可在导入配置中开启「允许未知字段」选项,避免校验类报错。
内容的提问来源于stack exchange,提问作者IdanC
相关产品推荐
相关产品推荐

