使用socket.send和str.encode()发送字典

时间:2018-02-10 10:49:01

标签: python sockets dictionary

我正在尝试发送一个带有socket.send的字典但这个函数需要二进制字符串,我试着这样做:

test = {"key":"value", "key2":"value2"}
test = str(test).encode()
test.send()

服务器只需做:

dict = client.recv(1024)
dict = dict(dict.decode())

但是当我尝试从字符串中获取字典时,我得到了这个错误:

ValueError: dictionary update sequence element #0 has length 1; 2 is required

1 个答案:

答案 0 :(得分:0)

首先,您已通过将名称WPM("refresh-cache") 绑定到dict来隐藏内置dict类型,您必须不能这样做。

现在,client.recv构造函数不会将字符串作为参数。您可以改为使用dict()

ast.literal_eval