我正在寻找一种在基于 CherryPy 的服务器和在 Symbian 手机上运行的 Python 客户端之间序列化通用Python 对象的方法。由于 pyS60 没有实现 pickle 模块,你会怎么做?
我知道Cerealizer,但它要求您在使用前注册课程(我想避免)并且看起来不太成熟。那么,您会使用什么?Python 2.2 的 pickle 模块可能是从源代码中提取的?XML、JSON?几个库中的哪一个?:)
我正在寻找一种在基于 CherryPy 的服务器和在 Symbian 手机上运行的 Python 客户端之间序列化通用Python 对象的方法。由于 pyS60 没有实现 pickle 模块,你会怎么做?
我知道Cerealizer,但它要求您在使用前注册课程(我想避免)并且看起来不太成熟。那么,您会使用什么?Python 2.2 的 pickle 模块可能是从源代码中提取的?XML、JSON?几个库中的哪一个?:)
使用 pickle 模块有什么问题?
有人为 PyS60 编写了一个 json 模块。我只是抓住它,将事物序列化为 json 并将其用作 Web/客户端应用程序之间的传输方法。
对于 json 库和一本不错的 PyS60 书籍: http ://www.mobilepythonbook.org/
最新版本的 Python (>1.9) 有模块 pickle 和 cPickle 可用
JSON 序列化的另一种替代方法是使用 netstring(查看 wikipedia)格式进行序列化。对于二进制对象,它实际上比 JSON 更有效。
你可以在这里找到一个好的网络字符串模块 http://github.com/tuulos/aino/blob/d78c92985ff1d701ddf99c3445b97f452d4f7fe2/wp/node/netstring.py(或aino/wp/node/netstring.py)