我有一个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?
答案 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))