【发布时间】:2012-04-03 15:10:20
【问题描述】:
我有一小段代码,它基本上接受一个列表并运行一个循环,针对列表中的每个项目运行针对 twitter 的搜索查询。我希望列表中的每个项目都是一个集合名称,但由于某种原因,我无法弄清楚如何使 db<collection_name_variable>.insert(post)> 真正起作用:
我收到一个错误:
TypeError: +: 'Database' 和 '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
【问题讨论】:
-
您正在尝试使用“+”运算符添加/连接类型为“Database”(db)和“String”(nosql)的对象。
-
Fenikso 是的,实际上令人惊讶的是,我确实理解了这个问题,只是不明白如何解决它。感谢您的评论!
-
@Ajj 您可以使用反引号 (`) 转义内联代码,无需对其进行调整。