2013-03-01 55 views
3

pickle的输出是非人类可读的,因此不可编辑。是否有一个python pickle等效库,它会转储ascii而不是二进制流?

我正在寻找一些可以完全相同(或非常接近)pickle的东西,从而它可以将所有可以理解的python对象转储到文件中,然后可以直接将其加载回去。

+3

'咸菜“已经是非常值得怀疑的了,人类编辑咸菜的想法让我想要奔向山丘。这个数据是什么,你为什么要泡菜+编辑它? – Eevee 2013-03-01 02:01:18

+0

OTOH泡菜可以转储ASCII流(当然还不能编辑) – wRAR 2013-03-01 02:03:47

+1

您不会编辑泡菜。 Python源代码已经可读且可编辑。为什么不使用源代码? – Keith 2013-03-01 02:06:14

回答

5

再看一眼,去找json。 json是一种文本格式,可以轻松编辑。开箱即用,您可以使用它来序列化Python内置类型的对象,如列表,字典,字符串等,但也可以将您自己的类的对象序列化为json,请参阅:How to make a class JSON serializable

+0

所以[json](http://docs.python。 org/2/library/json.html)或[json](http://docs.python.org/3.3/library/json.html) – 2013-03-01 02:02:19

+0

从RFC 4627开始“JSON文本应该用Unicode编码,默认编码是UTF-8“。所以这不是ascii。 – Keith 2013-03-01 02:03:58

+2

但是,json只序列化数据,而不是对象。例如,YOu无法返回类实例。 – Keith 2013-03-01 02:05:16

2

嗯........我发现这对我来说有点不错。

倾销对象从文件file

import pprint 
f = open('a.txt', 'w') 
pprint.pprint(myobject, f) 
f.close() 

搭乘物

import pprint 
f = open('a.txt') 
lines = f.read() 
myobject = eval(lines) 
f.close() 
1

如果你想有泡菜的所有灵活性,我会说,最明智的做法是创建一个可以帮助你的特定格式。

我不知道任何工具,它会像酸菜一样强大,但会生成可编辑的导出数据,但您可以创建自己的。前一段时间,我创建了一个玩具模块,它将包装一个Python模块,以便它可以发送和接收XML消息,主要是向朋友展示如何使用Python轻松工作:)它不是正好你在找什么但可以作为一个起点,所以take a look at it

(顺便说一句,我会很高兴地知道其他一些工具,做同样的事情,以更好的方式,它应该存在,我相信我只是没有发现它。)

相关问题