0

私は得る

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)

ただし、track パラメーターの引数を 1 つだけ指定すると、ios 7すべてがうまくいきます。パラメータをエンコードする方法に何か問題がありますか? twitter API documentationによると、 track パラメーターの引数のコンマ区切りリストをサポートしているためです。

4

1 に答える 1

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]:
于 2013-09-21T01:14:38.120 に答える