python - 编码 2D 列表
问题描述
如何在此处编码 2D 列表以发送到服务器,以便服务器可以打印 2D 列表?
错误:AttributeError:“列表”对象没有属性“编码”
代码:
Client.py
from socket import *
serverName = "localhost"
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))
input = [
[1, 0, 1, 1, 0],
[1, 0, 0, 1, 0],
[1, 1, 1, 0, 1]
]
clientSocket.send(input.encode())
clientSocket.close()
Server.py
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('', serverPort))
serverSocket.listen(1)
print("The server is ready to receive!")
while True:
connectionSocket, addr = serverSocket.accept()
array = connectionSocket.recv(1024).decode()
print(array)
connectionSocket.close()
解决方案
如果你只希望对端能够打印,或者发回二维列表,你可以直接发送一个字符串表示:
clientSocket.send(str(input).encode())
如果您希望它能够将数据处理为 2D 列表,您应该序列化列表,例如使用 json:
clientSocket.send(json.dumps(input).encode())
然后您可以使用以下命令检索列表:
list2D = json.loads(connectionSocket.recv(1024))
推荐阅读
- php - Laravel Excel - 如何在不存储到模型的情况下访问映射的单元格
- c++ - 读取与在联合中写入不同的成员是否是未定义的行为?
- angular - 启动控制
可访问性不起作用 - javascript - 与容器底部距离最小的粘性位置
- docker - 如何在 gitlab 中挂载卷并将文件复制到 docker 容器中?
- mobile - 谷歌移动友好测试结果与实际结果大不相同
- hash - Visual Studio 自动生成的 GetHashCode() 似乎溢出
- java - 如何在发布模式下构建 Android 应用程序?GoogleFit:RESULT_CANCELED
- flutter - 我的颤振 Web 应用程序拒绝编译为 chrome 的扩展
- python - AttributeError:“数据集”对象没有属性“astype”