首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:通过网络发送列表/字典

python:通过网络发送列表/字典
EN

Stack Overflow用户
提问于 2010-04-02 01:39:00
回答 3查看 5.8K关注 0票数 4

我正在寻找一种简单的方法来打包/解包数据结构,以便通过网络发送:

在发送之前的客户端上:

代码语言:javascript
复制
a = ((1,2),(11,22,),(111,222))
message = pack(a)

然后在服务器上:

代码语言:javascript
复制
a = unpack(message)

有没有可以进行打包/解包魔法的库?提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-02 01:40:18

看起来JSON可能符合要求。这很简单,而且是it's in the Python standard library

不过,它可能对元组不太满意:

代码语言:javascript
复制
>>> import json
>>> a = ((1,2),(11,22,),(111,222))
>>> print a
((1, 2), (11, 22), (111, 222))
>>> message = json.dumps(a)
>>> message
'[[1, 2], [11, 22], [111, 222]]'
>>> b = json.loads(message)
>>> b
[[1, 2], [11, 22], [111, 222]]

这是否是一个问题,由您来决定。

票数 12
EN

Stack Overflow用户

发布于 2010-04-02 01:42:24

参见pickle - Python对象序列化:

Python模块实现了一个基本但功能强大的算法,用于序列化和反序列化

对象结构。“酸洗”是将Python对象层次结构转换为字节流的过程,而“取消酸选”是相反的操作,即将字节流转换回对象层次结构。酸洗(和取消酸洗)也称为“序列化”、“编组”或“扁平化”,但是,为了避免混淆,这里使用的术语是“酸洗”和“取消酸洗”。

票数 2
EN

Stack Overflow用户

发布于 2010-05-14 16:05:09

ast.literal_eval()保留了元组:

代码语言:javascript
复制
>>> a = ((1,2),(11,22,),(111,222))
>>> s = repr(a)
>>> import ast
>>> ast.literal_eval(s)
((1, 2), (11, 22), (111, 222))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2562359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档