2016-11-06 17 views
0
async def chuck(self): 
     joketype = 'nerdy' if randint(0, 100) < 50 else 'explicit' 
     cnjoke = requests.get('http://api.predator.wtf/joke/?arguments={}'.format(joketype),allow_redirects = True).content 

     return '{}'.format(str(cnjoke.replace('&quot;', '"').replace('steal', 'steel'))) 

私はチャックノリスジョークを(笑聞かないで)取得するには、このAPIを使用しようとしていますが、それはこのエラーを返して:のPython 3、TypeError例外:バイトのようなオブジェクトが必要な、ない「str」は

return '```{}```'.format(str(cnjoke.replace('&quot;', '"').replace('steal', 'steel'))) 
TypeError: a bytes-like object is required, not 'str' 

私は何をすべきかわかりません。

答えて

1
'```{}```'.format(str(cnjoke).replace('&quot;', '"').replace('steal', 'steel')) 

または

'```{}```'.format(cnjoke.decode().replace('&quot;', '"').replace('steal', 'steel')) 

content戻り代わりtextを使用して

type(cnjoke) #bytes 

バイト、あなたのケースで良いかもしれ

_cnjoke = requests.get('http://api.predator.wtf/joke/?arguments={}'.format(joketype),allow_redirects = True).text 
type(_cnjoke) #str 
+0

おかげで非常に多く、3 <完全に働きました – ChickenRun

関連する問題