Pickle在Python中以可读的格式进行了pick



我的python词典中的文件中的格式:

(DP0 S'test' P1 s'test1' P2 ss'test2' P3 s'test2' P4 ss'starspy' P5 s'shsn4n' P6 s。

请参阅:将字典保存到python中的文件(替代品)?

我想回头读。

根据链接中的问题,已经创建了与泡菜一起保存它。但是,当我尝试用泡菜保存词典时,我获得的格式就不对应了。

例如,代码:

import pickle
mydict = {'a': 1, 'b': 2, 'c': 3}
output = open('myfile.dict', 'wb')
pickle.dump(mydict, output)
output.close()

生成带有内容的文件

€} q(x aqkx bqkx cqku。

我可以回信,但它没有文件的格式(与嵌套词典相对应)。所以,我有两个问题:

首先,如何用格式编写文件...(DP0S'test'P1s'test1'P2ss'test2'P3s'test2'P4ss'starspy'P5s'shsn4n'P6s。?

第二,如何使用该格式读取文件?

如果您想要可读的词典,则与json一起使用,它内置在python中,输出几乎就像词典。

pickle模块文档中回答了问题:https://docs.python.org/2/library/pickle.html#data-data-stream-format

当前有3种不同的协议可以用于 腌制。

协议版本0是原始的ASCII协议,是向后的 与早期版本的Python兼容。

协议版本1是 旧的二进制格式,也与早期版本的 Python。

协议版本2在Python 2.3中引入。它提供 更有效地腌制新样式的课程。

无论您在开始时显示什么,它都是协议版本0,是默认版本。最后 - 二进制协议版本1或2。

只需指定协议版本号:

>>> pickle.dump({'hello': 'world'}, file('f.txt', 'wt'))
>>> file('f.txt', 'rt').read()
"(dp0nS'hello'np1nS'world'np2ns."
>>> pickle.dump({'hello': 'world'}, file('f.txt', 'wt'), 2)
>>> file('f.txt', 'rt').read()
'x80x02}qx00Ux05helloqx01Ux05worldqx02s.'
>>> pickle.dump({'hello': 'world'}, file('f.txt', 'wt'), 1)
>>> file('f.txt', 'rt').read()
'}qx00Ux05helloqx01Ux05worldqx02s.'

ps:为什么不使用可读格式,例如JSON?

我遇到的问题是版本的问题。我正在使用版本3,并且与版本2一起使用。

在这种情况下,我可以使用要读取的文件中的格式创建一个文件,现在可以阅读。

相关内容

  • 没有找到相关文章

最新更新