使用pyMongo将数据保存在mongodb中的json文件中

时间:2017-07-20 19:28:14

标签: python json mongodb pymongo

我有一个json文件,每行有10行,有一个dict,包含数据,我想使用pyMongo将这个json数据存储在MongoDB中。这是我写的代码:

import pymongo
from pymongo import MongoClient

client = MongoClient()

db = client.twitterdata

coll = db.twitterset

f = open('twitterdata.json', 'r')

dblist = []

for line in f:
    dblist.append(line)

我正在尝试创建一个列表,其中包含所有dicts作为其元素,然后使用insert_all()方法将其添加到集合中,但由于我附加了该行,因此列表的元素是字符串还是DICT?

1 个答案:

答案 0 :(得分:1)

首先,如果每行都有一个dict,那么这不是一个有效的JSON文件。这不是有效的JSON:

{"id": 1, "value": "abc"}
{"id": 2, "value": "xyz"}
{"id": 3, "value": "mop"}

如果您的数据结构如下,我建议您将其更新为有效的JSON,如:

[{"id": 1,"value": "abc"}, 
 {"id": 2,"value": "xyz"},
 {"id": 3,"value": "mop"}]

如果您因任何原因被迫继续留在第一种情况下,您可以确保在数据库中插入您想要的内容,如下所示:

import json

dblist = []
with open('twitterdata.json', 'r') as f:
    for line in f:
        dblist.append(json.loads(line))

如果您选择正确格式化文件,则代码会变得更好:

import json

dblist = []
with open('twitterdata.json', 'r') as f:
    dblist.extend(json.load(f))