Flask不支持操作数类型+:' dict'和' str'

时间:2017-07-17 13:46:37

标签: python flask

我尝试将此代码实现到烧瓶中,它在控制台中正常工作但是使用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",

1 个答案:

答案 0 :(得分:3)

如错误所示,您正在尝试将字典添加到字符串中:

tweepy.Cursor(api.search,q=keyword+ " -filter:retweets",

keyword是一本字典。因为Python倾向于强类型,所以转换为字符串并不像某些语言那样自动转换。首先将其转换为字符串:

tweepy.Cursor(api.search,q=str(keyword) + " -filter:retweets",

正如评论员所提到的,Python的错误信息通常非常清楚。确保你真的读过它们,因为它们通常是不言自明的。