“Python pickle”的版本间的差异
跳到导航
跳到搜索
防止
(→例子) |
|||
第3行: | 第3行: | ||
== 例子 == | == 例子 == | ||
− | 使用 <code>open</code> 的 {{code|python|'rb'}} | + | === 防止 <code>UnicodeDecodeError</code> === |
+ | |||
+ | 使用 <code>open</code> 的 {{code|python|'rb'}} 参数。<ref>https://stackoverflow.com/a/32957860/10974106</ref> | ||
<syntaxhighlight lang=python> | <syntaxhighlight lang=python> | ||
import pickle | import pickle | ||
obj = pickle.load(open('./obj.dump', 'rb')) | obj = pickle.load(open('./obj.dump', 'rb')) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Load 到一个对象 === | ||
+ | |||
+ | <ref>[https://docs.python.org/3/library/pickle.html#pickling-class-instances Pickling Class Instances]</ref> | ||
+ | <syntaxhighlight lang=python> | ||
+ | class Obj: | ||
+ | @classmethod | ||
+ | def load(cls, attributes): | ||
+ | obj = cls.__new__(cls) | ||
+ | obj.__dict__.update(attributes) | ||
+ | return obj | ||
+ | |||
+ | s = Obj.load(pk.load(open('./obj.dump', 'rb'))) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2021年5月5日 (三) 05:54的版本
Python 的对象序列化库。
例子
防止 UnicodeDecodeError
使用 open
的 'rb'
参数。[1]
import pickle
obj = pickle.load(open('./obj.dump', 'rb'))
Load 到一个对象
class Obj:
@classmethod
def load(cls, attributes):
obj = cls.__new__(cls)
obj.__dict__.update(attributes)
return obj
s = Obj.load(pk.load(open('./obj.dump', 'rb')))
Rust crate serde-pickle
Rust 有一个 crate 用于序列化对象为 pickle 格式。repo, 文档