首先数据是以标准的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
请问这个情况要怎么解决呢?谢谢
Masalah anda adalah kerana anda bukan dalam format json standard Format standard sepatutnya seperti ini
Kedua, data anda dibaca dalam baris Sila beritahu saya rupa baris data anda
Jawapan @sheep3 betul.
Jika anda meletakkan JSON terus ke MongoDB, anda boleh menggunakan mongoimport (https://docs.mongodb.com/manu...
Jika anda masih mahu memproses data, anda boleh menggunakan kod seperti ini:
Jika kandungan fail JSON lebih besar daripada memori, anda harus membuka fail JSON melalui penstriman. Anda boleh menggunakan pakej ijson (https://pypi.python.org/pypi/...). Penggunaannya juga agak mudah:
Jawapan @Christoph secara langsung menamakan penyelesaian yang lebih mudah dan dioptimumkan, dan saya mempelajari helah