Python 3:将具有拉丁文1个字符的字节解码为具有十进制表示形式的字符串

我正在一个迁移项目中,将一层Web服务器从python 2.7.8升级到python 3.6.3,在某些特殊情况下,我遇到了障碍。 当从客户端接收到请求时,有效载荷将使用pyzmq在本地传输,该pyzmq现在在python3中以“字节”而不是“ string”(以前在python2中)进行交互。

现在,我接收到的有效负载是使用iso-8859-1(latin-1)方案编码的,我可以轻松地将其转换为有效负载.decode('latin-1')字符串,并将其传递给下一个服务(svc- save-entity),它需要字符串参数。

但是,后续服务'svc-save-entity'期望latin-1字符(如果存在)将以ASCII字符引用(如é的é)而不是十六进制(如é的\ xe9)表示。 。

我正在努力寻找一种有效的方法来实现这种转换。 python专家可以在这里指导我吗?本质上,我需要一个函数的定义,例如decode_tostring():-

payload = b'Banco Santander (M\xe9xico)'         #payload is in bytes
payload_str = decode_tostring(payload)           #function to convert into string
payload_str == 'Banco Santander (Mé9xico)'  #payload_str is a string in ASCII Character Reference

请定义decode_tostring。 :)