2016-11-06 3 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를 사용하려고하지만,이 오류를 반환 :파이썬 3, 형식 오류하십시오 바이트와 같은 객체가 필요하지 '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 반환

type(cnjoke) #bytes 

대신 귀하의 경우

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

감사합니다 아주 많이, 완벽하게 작동 <3 더 좋을 수 text를 사용하여 바이트 – ChickenRun

관련 문제