python 列表列表的用户可读文件格式

User-readable file format for python list of lists

我正在考虑为我的 Python 应用程序使用用户可读的文件格式。现在我正在使用 pickle 以二进制形式存储我的数据。 我不确定 XML 或 JSON 是否可行,但基本上我的文件包含如下所示的列表列表:

[1, 'the name of the set', [[1, 'data1', 'data2'],[2,'data3','data4']]

包含字符串的其他列表的列表可以有多个项目(甚至数百个)。 基本上,我想要一些具有简单接口的东西来转换它 to/from python 列表,我需要那些整数保持整数。

我会在这里专门使用 YAML PyYAML; IHMO 它更适合人类阅读!

示例:手动

foo:
    - 1
    - 2
    - 3

上面的例子排除了嵌套

使用:yaml.dump()和朋友

演示:

>>> import yaml
>>> data = {"foo": [[1, 2, 3], [4, 5, 6]]}
>>> print yaml.dump(data)
foo:
- [1, 2, 3]
- [4, 5, 6]

NB: As JSON is a subset of YAML 两者都不会保留复杂类型;仅支持基本类型; intfloatlistdictstr.

这已经是字面意思 JSON。 JSON 可能是目前最流行的格式,其易读性无可争议。

In [105]: my_list = [1, 'the name of the set', [[1, 'data1', 'data2'],[2,'data3','data4']]]
In [106]: my_list == json.loads(json.dumps(my_list))
Out[106]: True