ホームページ  >  に質問  >  本文

通过Python将Json数据导入MongoDB

首先数据是以标准的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

请问这个情况要怎么解决呢?谢谢

怪我咯怪我咯2741日前493

全員に返信(3)返信します

  • 阿神

    阿神2017-04-18 10:31:42

    あなたの問題は、あなたの形式が標準のjson形式ではないためです。標準の形式は次のようになります

    。 リーリー

    次に、データは行単位で読み取られます。データの行がどのようになっているか教えてください。

    返事
    0
  • 黄舟

    黄舟2017-04-18 10:31:42

    @sheep3 さんの答えは正しいです。

    JSON を MongoDB に直接入れる場合は、mongoimport (https://docs.mongodb.com/manu...) を使用できます。

    それでもデータを処理したい場合は、次のようなコードを使用できます:

    リーリー

    JSON ファイルの内容がメモリよりも大きい場合は、ストリーミングを通じて JSON ファイルを開く必要があります。 ijson パッケージ (https://pypi.python.org/pypi/...) を使用できます。使用方法も比較的簡単です:

    リーリー

    返事
    0
  • 迷茫

    迷茫2017-04-18 10:31:42

    @Christoph の回答には、よりシンプルで最適化されたソリューションが直接指定されており、私はトリックを学びました

    返事
    0
  • キャンセル返事