我需要将由列表/字典,元组组成的Python结构存储为人类可读的格式.这个想法就像使用类似于泡菜的东西,但泡菜不是人类友好的.我想到的其他选项是YAML(通过PyYAML和JSON(通过simplejson)序列化器.
你想到的任何其他选择?
提前致谢.
对于简单的情况,可以想到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()(或更奇特的对象查看器)来查看对象?
如果它只是 Python列表,字典和元组对象.- JSON是要走的路.它具有人类可读性,非常易于处理和语言独立.
警告:元组将在simplejson中转换为列表.
In [109]: simplejson.loads(simplejson.dumps({'d':(12,3,4,4,5)})) Out[109]: {u'd': [12, 3, 4, 4, 5]}
您应该查看jsonpickle(https://github.com/jsonpickle/jsonpickle)。它将所有python对象写到json文件中。然后,您可以将该文件读回到python对象中。令人高兴的是,中间文件非常可读,因为它是json。