我在编码字符'/'时遇到了很多麻烦,以便在使用twython的流式传输Twitter api时使用它。在没有编码的情况下尝试时,'EUR / USD'会给出错误代码401。请注意,使用其他搜索查询,它可以正常工作,不会产生此错误。
我尝试过几种方式。 第一:
'EUR/USD'.replace('/','%2F')
但搜索没有返回任何内容。
我也尝试过:
urllib.quote('EUR/USD', '')
虽然打印输出相同(EUR%2FUSD),但搜索仍未返回任何结果。
最后我尝试了双重编码:
urllib.quote(urllib.quote('EUR/USD', ''),'')
我获得了EUR%252FUSD,但仍然没有结果。
此外,在搜索EURUSD时,搜索确实可以正常工作,但只有在推文本身前面带有符号$(例如$ EURUSD)时才能正常工作。 如果美元符号丢失,搜索也不会检测到推文。 (例如只是欧元兑美元)
这是它的工作原理:
querystring = 'EURUSD'
auth = tweepy.OAuthHandler('key','secret')
auth.set_access_token('key','secret')
api = tweepy.API(auth)
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
pprint.pprint([status.user.name,removeNonAscii(status.text),status.lang])
def on_error(self, status_code):
print >> sys.stderr, 'Encountered error with status code:', status_code
return True # Don't kill the stream
def on_timeout(self):
print >> sys.stderr, 'Timeout...'
return True # Don't kill the stream
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=querystring, languages=['en'])
任何人都知道这里会发生什么?