Python 将包含字符串和int对象的列表转换为用于套接字通信的bytearray

Python 将包含字符串和int对象的列表转换为用于套接字通信的bytearray,python,arrays,sockets,network-programming,cross-platform,Python,Arrays,Sockets,Network Programming,Cross Platform,我试图通过套接字通信将包含整数值和字符串值的列表发送到远程计算机。我尝试将列表转换为bytearray,然后可以使用socket.send()发送,但收到以下错误: TypeError: 'str' object cannot be interpreted as an integer 有没有一种方法可以在不拆分列表的整数和字符串部分的情况下发送此信息 编辑*: 代码如下所示: list=[1,"a"] HOST= '192.168.0.31' # Server IP or Hostname

我试图通过套接字通信将包含整数值和字符串值的列表发送到远程计算机。我尝试将列表转换为bytearray,然后可以使用
socket.send()
发送,但收到以下错误:

TypeError: 'str' object cannot be interpreted as an integer
有没有一种方法可以在不拆分列表的整数和字符串部分的情况下发送此信息

编辑*: 代码如下所示:

list=[1,"a"]

HOST= '192.168.0.31' # Server IP or Hostname
PORT = 12345 # Pick an open Port (1000+ recommended), must match the server port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.send(list)

从这个问题的答案来看。

由于pickel是跨平台兼容的(如果满足某些条件!),因此可以将pickel数据转储到一台机器的套接字中,并从另一台机器的套接字读取。但你需要保证的东西很少。如果机器上运行的python版本相同,则更好。并不是所有的pickle格式都是跨平台兼容的,但是默认的ASCII pickle格式是兼容的,关于跨平台pickle兼容性的更多信息,请参考带标签的问题

对于编码部分

服务器中

s.sendall(pickle.dumps(list))
在客户端

list = pickle.loads(rcvd_data)

请包括所有相关代码。