当前位置:  开发笔记 > 编程语言 > 正文

Python人类可读对象序列化

如何解决《Python人类可读对象序列化》经验,为你挑选了3个好方法。

我需要将由列表/字典,元组组成的Python结构存储为人类可读的格式.这个想法就像使用类似于泡菜的东西,但泡菜不是人类友好的.我想到的其他选项是YAML(通过PyYAML和JSON(通过simplejson)序列化器.

你想到的任何其他选择?

提前致谢.



1> PEZ..:

对于简单的情况,可以想到pprint()和eval().

使用你的例子:

>>> d = {'age': 27,
...  'name': 'Joe',
...  'numbers': [1, 
...              2, 
...              3,
...              4,
...              5],
...  'subdict': {
...              'first': 1, 
...              'second': 2,
...               'third': 3
...              }
... }
>>> 
>>> from pprint import pprint
>>> pprint(d)
{'age': 27,
 'name': 'Joe',
 'numbers': [1, 2, 3, 4, 5],
 'subdict': {'first': 1, 'second': 2, 'third': 3}}
>>> 

我会考虑使用相同的工具修复两个要求.您是否考虑过使用pickle进行序列化,然后使用pprint()(或更奇特的对象查看器)来查看对象?


好吧,我必须将这些结构存储到文件中,因此它们主要用于加载/保存它们的程序,但我希望它们也可以被人类编辑/读取.

2> JV...:

如果它只是 Python列表,字典和元组对象.- JSON是要走的路.它具有人类可读性,非常易于处理和语言独立.

警告:元组将在simplejson中转换为列表.

In [109]: simplejson.loads(simplejson.dumps({'d':(12,3,4,4,5)}))
Out[109]: {u'd': [12, 3, 4, 4, 5]}



3> Paul Hildebr..:

您应该查看jsonpickle(https://github.com/jsonpickle/jsonpickle)。它将所有python对象写到json文件中。然后,您可以将该文件读回到python对象中。令人高兴的是,中间文件非常可读,因为它是json。

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有