db insert命令中集合名称的Python/Pymongo变量
我有一小段代码,基本上是获取一个列表并运行一个循环,针对列表中的每个项目运行针对twitter的搜索查询。我希望列表中的每个项目都是一个集合名称,但由于某些原因,我无法确定如何使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
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)