首页 > 解决方案 > 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。

任何帮助理解这个问题将不胜感激,谢谢!

标签: jsongoogle-bigquery

解决方案


将 JSON 文件加载到 BigQuery 时,最好记住这种格式存在一些限制。你可以在这里找到它们。尽管您的文件可能是有效的 JSON 文件,但其中一些文件可能不符合 BigQuery 限制,因此我建议您仔细检查它们是否真的适用于 BigQuery。

我希望这会有所帮助。


推荐阅读