python - Python Pickle 是否有我可以用作分隔符的非法字符/序列?

标签 python pickle

我想制作(并解码)一个由多个 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/

相关文章:

python - 将数字字符引用符号转换为 unicode 字符串

python - 在 pickle 文件中添加新 key

python - 我应该在 Python 中的什么地方定义 namedtuple 类——哪个命名空间?

sockets - 如何将网络套接字连接发送到 Tornado 中的不同进程?

python - 使用多处理在 Python 中制作并行版本的 map 函数时出现 Pickle 错误

python - Pyglet vertex_list_indexed 异常

python - 在 Twitter OAuth POST 请求上获取 401

python - 如何在正则表达式中每行匹配一个?

python - 如何在pypy沙箱中导入numpy

Python pickling 保持对象身份