Python 如何使用PyMongo在对象中插入多个字典值

Python 如何使用PyMongo在对象中插入多个字典值,python,mongodb,pymongo,Python,Mongodb,Pymongo,TypeError:文档必须是dict、bson.son.son、bson.raw\u bson.RawBSONDocument的实例,或者是从collections.MutableMapping继承的类型 我是Pymongo和Python的新手,所以我不确定这是否可行 我的目标是获取一个包含从列表编译的多个不同值的字典,并使用namedict的Dictionary对象将这些值插入MongoDB。我知道我可以手动写出每个字典值,然后插入它们,但要寻找一种更有效的方法。希望有一种方法可以从数组对象

TypeError:文档必须是dict、bson.son.son、bson.raw\u bson.RawBSONDocument的实例,或者是从collections.MutableMapping继承的类型

我是Pymongo和Python的新手,所以我不确定这是否可行

我的目标是获取一个包含从列表编译的多个不同值的字典,并使用namedict的Dictionary对象将这些值插入MongoDB。我知道我可以手动写出每个字典值,然后插入它们,但要寻找一种更有效的方法。希望有一种方法可以从数组对象中同时插入多个

数据库结构与此类似:
cltest(DB)
回顾1(文件)
字段(\u id ObjectId,name)
列(名称)
厨房(价值)
动物(价值)
状态(值)
美味(价值)

更新1

上面的代码允许我在数据库中输入多个条目。我仍然有问题的地方是将列表(名称)转换成字典,如dic1,其中所有键都是相同的

更新2-找到单个列表的解决方案,将批量导入值记录到MongoDB中

更新3
现在我试图把这三个列表都转换成字典。然后将所有其他列表中的数据插入到每个名称项中,以便第一个名称的顺序与第一个公司类型相对应,这也与第一个公司条目相对应,依此类推

更新代码:

dic1 = {'website': 'www.carrefax.com'}, {'website': 'Daniel Hoadley'}, {'website': 'purple'}

for item in dic1:
    collection.insert_one(item)

更新4-已解决

from pymongo import MongoClient

# Create connection to MongoDB
client = MongoClient('localhost', 27017)
db = client['name_of_database']
collection = db['name_of_collection']
names = ['Kitchen','Animal','State', 'Tasty']
company_type = ['LLC','Inc','Company','Corporation']
company_cuisine = ['Pizza', 'Bar Food', 'Fast Food', 'Italian']

# Build a basic dictionary & Insert into DB
for item in names:
    data = {}

    data['name'] = item
    collection.insert_one(data)

for item in company_type:
    data = {}

    data['company_type'] = item
    collection.insert_one(data)

for item in company_cuisine:
    data = {}

    data['cuisine'] = item
    collection.insert_one(data)

是否要将此添加到DB<代码>{'names':['Kitchen'、'Animal'、'State'、'Tasty']}是的,但是如果列表中包含一千多个项目,而不是四个。我想知道如何一次将它们全部插入数据库,而不必键入每一项。我想您应该添加以下内容:
{'names':'Kitchen'}{'names':'Animal'}
知道如何将这两种类型插入Mongodb会很有帮助。因此,无论是一个具有列表值的字典,还是一个字典中的所有值都能够用一个对象添加所有值,都会使将所有数据插入数据库变得更加容易。
from pymongo import MongoClient

# Create connection to MongoDB
client = MongoClient('localhost', 27017)
db = client['name_of_database']
collection = db['name_of_collection']
names = ['Kitchen','Animal','State', 'Tasty']
company_type = ['LLC','Inc','Company','Corporation']
company_cuisine = ['Pizza', 'Bar Food', 'Fast Food', 'Italian']

# Build a basic dictionary & Insert into DB
for item in names:
    data = {}

    data['name'] = item
    collection.insert_one(data)

for item in company_type:
    data = {}

    data['company_type'] = item
    collection.insert_one(data)

for item in company_cuisine:
    data = {}

    data['cuisine'] = item
    collection.insert_one(data)
from pymongo import MongoClient

# Create connection to MongoDB
client = MongoClient('localhost', 27017)
db = client['name_of_database']
collection = db['name_of_collection']
names = ['Kitchen','Animal','State', 'Tasty']
company_type = ['LLC','Inc','Company','Corporation']
company_cuisine = ['Pizza', 'Bar Food', 'Fast Food', 'Italian']

# Build a basic dictionary & Insert into DB

for i, c, p in zip(names, company_type, company_cuisine):
    data = {}
    data['name'] = i
    data['company_type'] = c
    data['cuisine'] = p
    collection.insert_one(data)