我正在处理ConceptNet Json文件,并试图提取文件中实体之间的关系。该文件非常大,例如,part_00.json
是1.4Gb
,我编写了一个Python程序来处理大文件,并尝试将处理后的数据保存到新的输出文件中。源代码如下:
import json
inputData = "d:\\part_00.jsons"
outputData = "d:\\output.jsons"
fin = open(inputData, 'r')
fout = open(outputData, 'w')
outputfile =[]
for eachLine in fin:
line = eachLine.strip()
line = line.strip(',')
js = None
try:
js = json.loads(line)
outputfile.append(js["uri"])
except Exception,e:
print 'bad line'
continue
for line in outputfile:
if line.startswith("/a"):
a = line[4:-1]
r, c1, c2 = a.split(",")
if c1.split("/")[2] == "en" and c2.split("/")[2] == "en":
fout.write((" ".join((r, c1.split("/")[3], c2.split("/")[3]))).encode('utf8'))
fout.write("\n")
fout.close()
然而,当我运行该程序时,我收到错误:
Traceback (most recent call last):
File "D:\workspace\CSK\src\readJson.py", line 48, in <module>
r, c1, c2 = a.split(",")
ValueError: too many values to unpack
然后我检查了输出文件output.jsons
,发现它只有57mb
大小且不完整。
我不知道问题的原因是什么。是因为文件的大小?或者有一些缓存错误?我希望得到你的答案。