我正在尝试使用字典缓存从互联网下载的图像的元数据(我对图像本身不感兴趣)。图像的id(int)是键,表示元数据的自定义类是值。
我想在程序退出之前将这个字典写入一个文件,所以我不必在下次启动时再次下载这些信息,但我在序列化时遇到了一些麻烦。
到目前为止,我试过了:
如何序列化字典(int,custom_class)?序列化格式应该是人类可读的,并且必须是可反序列化的。
我正在使用Python 3.4并且外部依赖项可以,只要我可以使用pip安装它们。
答案 0 :(得分:2)
正如您所提到的,外部库是可以的,请使用jsonpickle。
答案 1 :(得分:1)
您可以尝试使用内置的pickle模块。如果使用pickle.dumps(myobj, protocol=0)
,则返回“人类可读”的序列化字符串。可以阅读,但大多数人会发现它比JSON或XML更困难。优点是pickle可以处理许多在JSON中存在问题的复杂数据结构。避免依赖另一个外部库也可能很有吸引力。
答案 2 :(得分:0)
通过YAML包使用PyYAML。您甚至可以create custom markup tags为您的课程。