首先数据是以标准的json格式的文本。然后想要通过python脚本来导入Mongodb中。
json
{
"service": "http",
"datetime": "2017-03-28 17:23:19",
"starttime": "1490692810",
"endtime": "1490692999",
"port": 80
}{
"service": "ewall",
"datetime": "2017-03-28 17:23:19",
"starttime": "1490692810",
"endtime": "1490692999",
"port": 1328
}
python部分代码:
with open(filen, 'r') as f:
while 1:
try:
jsonstr = f.readline().strip()
# print jsonstr 可以输出整个json的内容
if not jsonstr:
break
try:
j = json.loads(jsonstr) #这里好像不处理的问题
except:
continue
jsonlist.append(j)
except:
break
请问这个情况要怎么解决呢?谢谢
你这个问题是因为你这个不是标准的json格式,标准的格式应该是这样的
第二个你这个数据是按行读的,请告诉我你一行数据到底是什么样子的
@sheep3 的回答是对的。
如果你直接把JSON放MongoDB里你可以用mongoimport (https://docs.mongodb.com/manu...
你还想处理数据的话可以用这样的代码:
如果JSON文件的内容比内存大你应该通过streaming方式把JSON文件打开。你可以用ijson包(https://pypi.python.org/pypi/...)。用法也比较简单:
@Christoph 的回答直接点名了更简单及优化的处理方案,学了一招