酸洗是递归的,不是顺序的。因此,要腌制一个列表,pickle
将开始腌制包含的列表,然后腌制第一个元素……潜入第一个元素并腌制相关性和子元素,直到第一个元素被序列化。然后移动到列表的下一个元素,依此类推,直到最终完成列表并完成对包含列表的序列化。简而言之,除了某些特殊情况外,很难将递归泡菜视为顺序的。dump
如果您想以load
一种特殊的方式,最好在您的样式上使用更智能的模式。
最常见的泡菜,它来腌制用一个单一的一切dump
到一个文件- 但你必须要load
一切在一个单一一次load
。但是,如果您打开文件句柄并进行多次dump
调用(例如,对列表中的每个元素进行一次调用,或选定元素的元组),则您load
将镜像……打开文件句柄并进行多次load
调用,直到获得所有列出元素并可以重建列表。但是,选择性地load
仅选择某些列表元素仍然不容易。为此,您可能必须dict
使用像这样的包将列表元素存储为(以元素或块的索引为键)作为列表元素klepto
,这样可以将腌制的食物分解dict
透明地放入多个文件中,并可以轻松加载特定元素。