python - 如何以人类可读的格式序列化 Python 对象?

标签 python serialization

我需要将由列表/字典、元组组成的 Python 结构存储为人类可读的格式。这个想法就像使用类似于 pickle 的东西。 ,但泡菜对人类不友好。我想到的其他选项是YAML (通过 PyYAMLJSON(通过 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 - 如何以人类可读的格式序列化 Python 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/408866/

相关文章:

python - 使用 Python 列表中的值创建一个 .csv 文件

引用对象的 C# 序列化

json - 使用 JSON.Net 的 C# 到 JSON 序列化

python - 更新 Django 对象字段而不刷新页面

python - 如何更改pyqt5 qwebengineview中html的一部分

c# - json.net 列表序列化到 JSON 数组

C++ 序列化 : overloading insert operator with write()

android - Android 中的 BinaryFormatter 序列化/反序列化替代方案

python - 无法导入名称 'ImageTK' - python 3.5

python - 如何导入扩展名为.xls的旧Excel文件?