json - BigQuery 以不同方式处理(假定)相同格式的 JSON - 一个接受,一个拒绝
问题描述
我正在尝试将 JSON 文件上传到 BigQuery。JSON 文件是 Lighthouse 审计工具的输出。我在 Python 中对它们进行了一些更改,以使 BigQuery 可以接受字段名称,并将格式转换为换行 JSON。
我现在正在测试这个过程,我发现虽然对于许多网页来说上传运行没有问题,但 BigQuery 拒绝了一些 JSON 文件。被拒绝的 JSON 似乎总是来自同一个网站,例如,来自 Topshop 的许多审计 JSON 在上传时失败(Python 中的操作运行没有问题)。我感到困惑的是,我看不出成功和失败的 JSON 的格式/结构没有区别。
我在这里包含了一些 JSON 文件的示例:https ://drive.google.com/open?id=1x66PoDeQGfOCTEj4l3VqMIjjhdrjqs9w
当 JSON 无法加载时,我从 BigQuery 得到的错误是:
Error while reading table: build_test_2f38f439_7e9a_4206_ada6_ac393e55b8ec4_source, error message: Failed to parse JSON: No active field found.; ParsedString returned false; Could not parse value; Could not parse value; Could not parse value; Could not parse value; Could not parse value; Could not parse value; Parser terminated before end of string
我还尝试使用自动检测功能通过接口将失败的 JSON 上传到新表(试图发现 Schema 是否有问题),这些上传也失败了,并且出现了同样的错误。
这让我觉得 JSON 文件一定是错误的,但我已经将它们复制到几个不同的 JSON 验证器中,它们都接受它们作为一行有效的 JSON。
任何帮助理解这个问题将不胜感激,谢谢!
解决方案
将 JSON 文件加载到 BigQuery 时,最好记住这种格式存在一些限制。你可以在这里找到它们。尽管您的文件可能是有效的 JSON 文件,但其中一些文件可能不符合 BigQuery 限制,因此我建议您仔细检查它们是否真的适用于 BigQuery。
我希望这会有所帮助。
推荐阅读
- wordpress - 如何使用 css 为不同的页面添加单独的标题图像
- object-detection - 我应该为验证图像创建 json 注释吗?
- javascript - javascript Date 对象中的时区问题
- javascript - 在数组中查找薪水最高的部门
- python - 在查询中使用 ndb IN 运算符
- ide - 为什么 WebStorm IDE 中的文件无法正常工作?
- python - 为什么我在生成pdf时在reportlab中出现“内存错误”
- docker - 如何使用 BUILDBOT_CONFIG_URL 配置 buildbot docker 容器
- angular - 从 API 请求 Angular 添加路由不适用于 SSR
- python - 如何将单列作为数据框内的标题传递:我面临错误:必须使用某种集合调用索引(...)