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

Python 错误“JSON文本必须至少包含两个八位字节!”,python,json,kissmetrics,Python,Json,Kissmetrics,我最近必须完成一个导出,然后重新导入所有Kissmetrics数据,以便删除由于不正确的别名而导致的一些错误事件。我构建了一个python程序,通过从原始JSON文件中剥离一些行来生成一个新的JSON文件。文件中保留的行的内容均未更改 我设置了一个数据集成,将我的新JSON文件上传回Kissmetrics系统,并收到一个错误:JSON文本必须至少包含两个八位字节 {"_n": "visited site", "url": "foo.com", "_t": 1399796233, "referre

我最近必须完成一个导出,然后重新导入所有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拆分为两个文件,每个文件包含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并运行,没有问题


有没有关于如何修复该文件的想法?

在上传和处理过程中,您的大型JSON似乎在某个时候被截断为0字节。必须包含至少两个八位字节表示输入为0或1字节,而不是表示输入有一些损坏或不良内容。有趣。我会看看能否就此与他们取得联系。非常感谢。