如何解决该错误“:TypeError:只能将str(而不是“字节”)连接到str”

2024-03-28 10:53:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python 3进行后门购买。我面临错误
错误

TypeError:只能将str(而不是“字节”)连接到str

json\u data=json\u data+self.connection.recv(1024)

一段代码导致错误

def reliable_receive(self):
    json_data = ""
    while True:
        try:
            json_data = json_data + self.connection.recv(1024)
            return json.loads(json_data)
        except ValueError:
            continue

Tags: 代码selfjsondata字节def错误connection
2条回答

self.connection.recv(1024)返回字节,因此必须首先将其解码为字符串,如下所示:

self.connection.recv(1024).decode("utf-8") 

(utf8是编码,您可能必须将其更改为ascii(或其他内容),具体取决于发送数据的编码)

根据json.loads的文档,它将接受strbytes作为其参数,但您需要选择其中一个;不能同时添加strbytes,因为它们代表不同类型的数据

因为您正在从recv接收一个bytes对象,所以您可能希望您的json_data也是一个bytes。只要事先声明:

json_data = b""

或者,您可以对recv返回值进行解码,以便将其转换为str;在这种情况下,您需要知道编码,否则某些字节序列可能会引发错误

相关问题 更多 >