db insert命令中集合名称的Python/Pymongo变量

db insert命令中集合名称的Python/Pymongo变量,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一小段代码,基本上是获取一个列表并运行一个循环,针对列表中的每个项目运行针对twitter的搜索查询。我希望列表中的每个项目都是一个集合名称,但由于某些原因,我无法确定如何使db.insert(post)>真正起作用: 我得到一个错误: TypeError:+:“数据库”和“str”的操作数类型不受支持 我知道这可能是非常基本的,但我只是在学习 from twython import Twython from pymongo import * conn = Connection('loca

我有一小段代码,基本上是获取一个列表并运行一个循环,针对列表中的每个项目运行针对twitter的搜索查询。我希望列表中的每个项目都是一个集合名称,但由于某些原因,我无法确定如何使
db.insert(post)>
真正起作用:

我得到一个错误:

TypeError:+:“数据库”和“str”的操作数类型不受支持

我知道这可能是非常基本的,但我只是在学习

from twython import Twython
from pymongo import *

conn = Connection('localhost')
db = conn.nosqltweets
twitter = Twython()

types = ['mongodb', 'cassandra', 'couchdb']

for nosql in types:
    search_results = twitter.searchTwitter(q=nosql, rpp="100")
    for tweet in search_results["results"]:
        from_user = tweet['from_user'].encode('utf-8')
        text = tweet['text']
        created_at = tweet['created_at']
        id_str = tweet['id_str']
        post = { 'id_str': id_str, 'from_user': from_user, 'created_at': created_at }
        insert = db + nosql + ".insert(post)"
        insert
替换:

insert = db + nosql + ".insert(post)"
insert
与:


您正在尝试使用“+”运算符添加/连接类型为“数据库”(db)和“字符串”(nosql)的对象。Fenikso yep,事实上令人惊讶的是,我确实理解这个问题,只是不知道如何解决它。谢谢你的评论@Ajj您可以通过使用backtick(`)来转义内联代码,无需对其进行调整。对不起,diliop不起作用,我会回答自己的问题,但它不允许我这样做:我使用了getattr(db,nosql)collection=getattr(db,nosql)collection.insert(post),除非上面的代码中缺少什么,否则这应该可以工作。db是
类型,您可以使用点表示法,即
db.couchdb
dict
成员访问,即
db['couchdb']
来获取调用
insert()
实例,显然,我没有尝试你发布的内容,因为我今天晚上再次尝试,结果成功了!谢谢明白了抱歉我是新来的!
db[nosql].insert(post)