Python 组织客户端和服务器之间发送的数据
请原谅,如果之前已经解决过这个问题,那么我如何在python应用程序(套接字)中组织客户端和服务器之间交换的数据呢 假设我要发送一些元素-字符串、元组、dict:Python 组织客户端和服务器之间发送的数据,python,sockets,python-2.7,Python,Sockets,Python 2.7,请原谅,如果之前已经解决过这个问题,那么我如何在python应用程序(套接字)中组织客户端和服务器之间交换的数据呢 假设我要发送一些元素-字符串、元组、dict: "hello world", (1, 2, 3), {"k": "v"} 我目前所做的只是将所有内容转换为字符串-在发送之前调用repr(),在接收之后调用eval()。这显然有点多余 我应该如何发送这些数据块?有会议吗?首选格式?如何压缩它?最简单的方法是在客户端对它们进行压缩,然后在服务器端取消对它们的压缩。但是,需要确保数据来
"hello world", (1, 2, 3), {"k": "v"}
我目前所做的只是将所有内容转换为字符串-在发送之前调用repr()
,在接收之后调用eval()
。这显然有点多余
我应该如何发送这些数据块?有会议吗?首选格式?如何压缩它?最简单的方法是在客户端对它们进行压缩,然后在服务器端取消对它们的压缩。但是,需要确保数据来自可信源,因为有可能强制unpickle执行任意代码。确保使用cPickle
获得C语言实现。最简单的方法是在客户端删除它们,然后在服务器端取消勾选它们。但是,需要确保数据来自可信源,因为有可能强制unpickle执行任意代码。确保使用cPickle
实现C语言。您应该这样做,这意味着您永远不应该eval()
任何通过不安全的网络连接到达的东西(或者您不能绝对确定另一端的实体是谁或它所说的东西)
这里最明显的解决方案是在一端对其进行解码(除非您有特定的性能要求,需要高度压缩的格式,例如)。您应该这样做,这意味着您永远不应该eval()
任何通过不安全的网络连接到达的内容(或者你不能绝对确定另一端的实体是谁或它所说的是什么)
这里显而易见的解决方案是在一端对其进行解码(除非您有特定的性能要求,需要高度压缩的格式,例如)。JSON就是您要寻找的。如果您有一个对象,并且导入了JSON函数:
from json import dumps, loads
您可以使用dumps(obj)
编码为JSON,并使用load(str)
将JSON字符串转换回对象。例如:
dumps([[1,2,3],{"a":"b", "c":"d"}])
产生'[[1,2,3],{“a”:“b”,“c”:“d”}]
和
loads('[[1, 2, 3], {"a": "b", "c": "d"}]')
产生
[[1,2,3],{u'a':u'b',u'c':u'd'}]
JSON就是您要寻找的。如果您有一个对象并导入JSON函数:
from json import dumps, loads
您可以使用dumps(obj)
编码为JSON,并使用load(str)
将JSON字符串转换回对象。例如:
dumps([[1,2,3],{"a":"b", "c":"d"}])
产生'[[1,2,3],{“a”:“b”,“c”:“d”}]
和
loads('[[1, 2, 3], {"a": "b", "c": "d"}]')
产生
[[1,2,3],{u'a':u'b',u'c':u'd'}]
如果你要找google的术语,这是“序列化”,python有pickle
用于python->python交换和json
用于python->world交换。如果你要找google的术语,这是“序列化”,python有pickle
用于python->python交换和json
用于python世界交流。