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

我需要将由列表/字典、元组组成的 Python 结构存储为人类可读的格式。这个想法就像使用类似于 pickle 的东西。 ,但泡菜对人类不友好。我想到的其他选项是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()(或更高级的对象查看器)让人们查看对象?

https://stackoverflow.com/questions/408866/

相关文章:

java - 如何使用 Jackson 定义可选的 json 字段

json - 处理 HTTP 请求正文中的可选 JSON 字段

java - 如何使用 Java 和 Jackson 库对 Json 字符串进行多态反序列化?

json - 将参数传递给 jq 过滤器

javascript - 定义 "cyclic data structures"

Java - 嵌套在嵌套中的 Gson 解析

java - 为什么 Json 测试程序不起作用?

ruby-on-rails - rails : Restrict API requests to J

c# - ASP.NET web api 无法获取 application/x-www-form-u

java - 对 kotlin 数据类使用 Jackson @JsonProperty 注释