我想制作(并解码)一个由多个 python pickle 组成的字符串。
是否有可以安全用作此字符串中分隔符的字符或序列?
我应该能够像这样制作字符串:
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 将 pickle 对象发送到 redis。 (虽然也许我只会使用 RPUSH)
最佳答案
将 pickle 连接在一起很好,Python 知道每个 pickle 的结束位置
>>> 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)
()
关于python - Python Pickle 是否有我可以用作分隔符的非法字符/序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973252/