错误“JSON文本必须至少包含两个八位字节!”

2024-06-16 18:52:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近不得不完成一次导出,然后重新导入我所有的Kissmetrics数据,以便删除由于错误别名而导致的一些错误事件。我构建了一个python程序来生成一个新的JSON文件(通过从原始JSON文件中去掉一些行)。文件中保留的行的内容没有被更改。在

我设置了一个数据集成,将新的JSON文件上传回Kissmetrics系统,并收到错误消息“一个JSON文本必须至少包含两个八位字节!”在

{"_n": "visited site", "url": "foo.com", "_t": 1399796233, "referrer": "https://www.google.co.in/", "_p": "ziecbw+mnecncwk9x1edoda9+qc="}
{"_n": "search engine hit", "_t": 1399796234, "search terms": "not provided", "_p": "ziecbw+mnecncwk9x1edoda9+qc=", "search engine": "Google"}
{"_t": 1399795555, "page_viewed_in_category": "bar", "_p": "jen/1vdw9ufyh8kpihtymvrjbj4="}

文件有几十万行长。我认为这个错误一定是在我生成JSON的过程中出现的,所以我尝试对数据进行二进制搜索,以找到有问题的行。我试着把数据一分为二上传一半的文件。这个理论最终帮助我找到了产生错误的那条线。奇怪的是,一旦我将文件拆分足够多次,以前产生错误的文件中的任何一半都不会产生错误。在

示例:

文件1-1000行JSON,上传到KM时产生错误

然后我将文件1分成2个文件,每个文件包含500行,文件2A和2B

文件2A-500行,不会产生错误 文件2B-500行并产生一个错误

这似乎与数据中存在错误JSON行的理论相一致。但是当我们把2B文件分成两个文件,3A文件和3B文件时会变得很奇怪

文件3A-250行,不会产生错误 文件3B-250行,不会产生错误

因此(Kissmetrics支持部门已经确认)错误不在JSON本身的实际内容中,而是在解析器读取我的文件的方式上。在

Kissmetrics建议我使用JSON.dumps文件在normal.write方法中编写文件,因为他们的理论是,我生成的JSON文件在生成文件的方式中有某种工件。我改用了JSON.dumps文件输出JSON文件-同样的错误。在

我正在编写的文件绝对都是有效的JSON—我可以将其扫描回Python并运行它。在

有什么办法我可以修复这个文件吗?在


Tags: 文件数据injson内容search错误方式