pis*_*hio 24 python serialization json yaml pickle
我需要将由列表/字典,元组组成的Python结构存储为人类可读的格式.这个想法就像使用类似于泡菜的东西,但泡菜不是人类友好的.我想到的其他选项是YAML(通过PyYAML和JSON(通过simplejson)序列化器.
你想到的任何其他选择?
提前致谢.
PEZ*_*PEZ 18
对于简单的情况,可以想到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}}
>>>
Run Code Online (Sandbox Code Playgroud)
我会考虑使用相同的工具修复两个要求.您是否考虑过使用pickle进行序列化,然后使用pprint()(或更奇特的对象查看器)来查看对象?
JV.*_*JV. 14
如果它只是 Python列表,字典和元组对象.- JSON是要走的路.它具有人类可读性,非常易于处理和语言独立.
警告:元组将在simplejson中转换为列表.
In [109]: simplejson.loads(simplejson.dumps({'d':(12,3,4,4,5)}))
Out[109]: {u'd': [12, 3, 4, 4, 5]}
Run Code Online (Sandbox Code Playgroud)
您应该查看jsonpickle(https://github.com/jsonpickle/jsonpickle)。它将所有python对象写到json文件中。然后,您可以将该文件读回到python对象中。令人高兴的是,中间文件非常可读,因为它是json。
| 归档时间: |
|
| 查看次数: |
17370 次 |
| 最近记录: |