当前位置:  开发笔记 > 编程语言 > 正文

Python Pickle有非法的字符/序列我可以用作分隔符吗?

如何解决《PythonPickle有非法的字符/序列我可以用作分隔符吗?》经验,为你挑选了1个好方法。

我想制作(和解码)由几个python泡菜组成的单个字符串.

是否有一个字符或序列可以安全地用作此字符串中的分隔符?

我应该能够像这样制作字符串:

s = pickle.dumps(o1) + PICKLE_SEPARATOR + pickle.dumps(o2) + PICKLE_SEPARATOR + pickle.dumps(o3) ...

我应该能够获取此字符串并重建对象,如下所示:

[pickle.loads(s) for s in input.split(PICKLE_SEPARATOR)]

PICKLE_SEPARATOR应该是什么?


对于好奇,我想使用APPEND将pickled对象发送到redis.(虽然也许我会使用RPUSH)



1> John La Rooy..:

将pickle连在一起是很好的,Python知道每个结束的地方

>>> import cStringIO as stringio
>>> import cPickle as pickle
>>> o1 = {}
>>> o2 = []
>>> o3 = ()
>>> p = pickle.dumps(o1)+pickle.dumps(o2)+pickle.dumps(o3)
>>> s = stringio.StringIO(p)
>>> pickle.load(s)
{}
>>> pickle.load(s)
[]
>>> pickle.load(s)
()


一个潜在的问题:这不适用于字符串,只适用于文件类对象:尝试`pickle.load(s)`三次,只返回`dict`.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有