Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pyMongo将json文件中保存的数据存储在mongodb中_Python_Json_Mongodb_Pymongo - Fatal编程技术网

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

Python 使用pyMongo将json文件中保存的数据存储在mongodb中,python,json,mongodb,pymongo,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

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

我试图创建一个列表,将所有dict作为其元素,然后使用
insert_all()
方法将其添加到集合中,但由于我要追加行,列表的元素是字符串还是dict?

首先,如果每行上有一个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))