我正在尝试使用 pymongo 将数组添加到 mongdb
我有另一个程序会返回类似的内容
['1 aksdfjas;dkfjsa;dfkj','2 ;alksdjf;askdjf;asdfjkasdf', '3 ;alksdfj;asdlkfj;asdfj']
我想将它们添加到插入中。
1)我想不出任何其他方法来做到这一点,所以我将它们转换为字符串并连接并尝试将它们添加到帖子中(一定有更好的方法吗?)
2)当我这样做时,我得到的不是欲望影响,而是
["'1 aksdfjas;dkfjsa;dfkj','2 ;alksdjf;askdjf;asdfjkasdf', '3 ;alksdfj;asdlkfj;asdfj'",]
额外的引号..我该如何纠正这个问题?
import pymongo
import time
import datetime
from random import *
from pymongo import MongoClient
client = MongoClient('mongodb://user:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="147576772526275425243a243a243a25" rel="noreferrer noopener nofollow">[email protected]</a>:27017')
stringToStuff = 'blabh blah blahhhhh'
def createLoop():
return randint(5,15)
def tGenerator(e):
returnString = ''
for i in range(e):
returnString += "'" + str(i+1) + " " + stringToStuff + "',"
return returnString
db = client['pytest']
collection = db['test']
names = db.test.find()
collection2 = db['pytestResult']
for p in names:
print(p['name'])
name2 = p['name']
#post = {"name":name2,"score":8,"date":datetime.datetime.now()}
post = {
"name":name2,
"score":8,
"date":datetime.datetime.now(),
#”output”: ['1 aksdfjas;dkfjsa;dfkj','2 ;alksdjf;askdjf;asdfjkasdf', '3 ;alksdfj;asdlkfj;asdfj',]
“output”: [tGenerator(createLoop())]
}
collection2.insert_one(post)
最佳答案
首先,将 tGenerator
方法构建字符串的方式更改为以下内容:
returnString += str(i+1) + " " + stringToStuff + ","
其次,您可以使用 split
方法来执行所需的操作,因此您的插入将如下所示:
post = {
"name":name2,
"score":8,
"date":datetime.datetime.now(),
"output": tGenerator(createLoop()).split(',')
}
collection2.insert_one(post)
希望以上内容对您有用。
关于python - 使用 pymongo 将数组插入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62034775/