我有这样一小段代码,基本上需要一个列表并运行一个循环,对列表中的每个项目运行针对twitter的搜索查询。我想在列表中每个项目是一个集合名称,但由于某种原因,我无法弄清楚如何使db<collection_name_variable>.insert(post)>
实际工作:在db插入命令中收集名称的Python/Pymongo变量
我得到一个错误:
TypeError: unsupported operand type(s) for +: 'Database' and '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
您尝试添加类型 “数据库”(DB)和 “字符串” 使用“(NoSQL的)的/串连对象+ “运营商。 – Fenikso 2012-04-02 17:50:03
Fenikso yep,实际上令人惊讶,因为它是我明白的问题,只是不明白如何解决它。感谢您的评论! – 2012-04-02 19:29:19
@Ajj你可以通过使用反引号(')来避免内联代码的调整。 – 2012-04-03 07:10:51