我得到了
ValueError: Invalid characters in query string
当我使用twitter流API进行以下查询时出现错误。
search_query = u"emmy awards, ios 7"
streaming_url = u"https://stream.twitter.com/1.1/statuses/filter.json?track={}".format(search_query)
但是,如果我只为ios 7
之类的track参数提供一个参数,一切都会好起来的。我对参数进行编码的方式有问题吗?因为根据twitter API documentation,它确实支持track参数的逗号分隔参数列表。
答案 0 :(得分:1)
您可能需要对查询进行编码:
https://stream.twitter.com/1.1/statuses/filter.json?track=emmy awards, ios 7
为:
https://stream.twitter.com/1.1/statuses/filter.json?track=emmy%20awards%2C%20ios%207
您可以使用urllib.quote
:
In [1]: import urllib
In [2]: search_query = u"emmy awards, ios 7"
In [3]: urllib.quote(search_query)
Out[3]: 'emmy%20awards%2C%20ios%207'
In [4]: streaming_url = u"https://stream.twitter.com/1.1/statuses/filter.json?rack={}".format(urllib.quote(search_query))
In [5]: streaming_url
Out[5]: u'https://stream.twitter.com/1.1/statuses/filter.json?rack=emmy%20awards%2C%20ios%207'
In [6]: