我尝试将此代码实现到烧瓶中,它在控制台中正常工作但是使用http请求我得到了这个模糊的错误:
app.py
@app.route('/results')
def results():
keyword = {'keyword': request.args.get('keyword')}
num_tweets=5
for tweet in tweepy.Cursor(api.search,q=keyword+
" -filter:retweets",
result_type='recent',
lang="en").items(num_tweets):
raw = tweet.text
clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", raw)
result = cool.api(clean)
return render_template('pages/results.html')
我的html表单如下所示:
<form action="/results">
Input:
<br>
<input type="text" name="keyword">
<br>
<input type="submit" value="Submit">
</form>
我也尝试了另一种方法:
kwargs = {
'keyword': request.form['keyword'],
}
添加methods=['POST', 'GET']
无法解决问题。
在错误页面中,问题出在以下一行:
" -filter:retweets",
答案 0 :(得分:3)
如错误所示,您正在尝试将字典添加到字符串中:
tweepy.Cursor(api.search,q=keyword+ " -filter:retweets",
keyword
是一本字典。因为Python倾向于强类型,所以转换为字符串并不像某些语言那样自动转换。首先将其转换为字符串:
tweepy.Cursor(api.search,q=str(keyword) + " -filter:retweets",
正如评论员所提到的,Python的错误信息通常非常清楚。确保你真的读过它们,因为它们通常是不言自明的。