首先数据是以标准的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
请问这个情况要怎么解决呢?谢谢
阿神2017-04-18 10:31:42
あなたの問題は、あなたの形式が標準のjson形式ではないためです。標準の形式は次のようになります
。 リーリー次に、データは行単位で読み取られます。データの行がどのようになっているか教えてください。
黄舟2017-04-18 10:31:42
@sheep3 さんの答えは正しいです。
JSON を MongoDB に直接入れる場合は、mongoimport (https://docs.mongodb.com/manu...) を使用できます。
それでもデータを処理したい場合は、次のようなコードを使用できます:リーリー
JSON ファイルの内容がメモリよりも大きい場合は、ストリーミングを通じて JSON ファイルを開く必要があります。 ijson パッケージ (https://pypi.python.org/pypi/...) を使用できます。使用方法も比較的簡単です:リーリー