Python 3,TypeError:类似字节的对象是必需的,而不是' str'

时间:2016-11-06 11:01:48

标签: python api

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来获取查克诺里斯的笑话(不要问大声笑)但它会返回此错误:

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

我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

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

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

content返回字节

type(cnjoke) #bytes

使用text代替您的情况可能会更好

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