在Ilya Grigorik 提供的http://www.githubarchive.org/中,我发现在许多 gz 文件中,一些连续的事件被记录到同一个文件中。
例如在 2011-03-15-21.json.gz
要完成上述操作:wget http://data.githubarchive.org/2011-03-15-21.json.gz
例如,在这个 gz 中,如果您搜索 id 1484832 ,您会发现 2 个连续事件(jsons)在同一行,请参阅 http://codebeautify.org/jsonviewer/2cb891
同一行中的两个 json 是
http://codebeautify.org/jsonviewer/c7e18e
和
http://codebeautify.org/jsonviewer/945d56
.
有什么影响?当我加载每一行并用python加载它时(为什么是python?因为我觉得python在处理jsons方面很舒服)json.loads它说它是无效的,因为它是两个jsons的组合。
问题 :
1)当您处理该 github 存档数据时,您是如何解决这些错误的?
2)我的本地数据已经有了。那么我该如何克服这个问题。我应该编写特定于这种情况的代码来克服吗?我写的代码就像
jsonlist = line.split('}{')
json.loads(jsonlist[0] + '}', "ISO-8859-1") # load and navigate through this json
json.loads('{' + jsonlist[1], "ISO-8859-1") # load and navigate through this json