序列化的简单格式,类似于json。对大多数普通用途都没有用处。
req的Python项目详细描述
简单的python模块,用于加载和转储req格式的结构, 简单的{string:(string list(string))}格式。
解析如下结构:
Foo|Bar Baz_1|alpha Baz_2|beta Baz_3|gamma
进入:
{'Foo':'Bar','Baz':['alpha','beta','gamma',],}
加载和转储方法将保持给定的编码,并且不会更正 错误时。如果您传递一个utf-8文件句柄来加载,您将得到unicode输出。 如果您传递一个bytestring文件句柄来加载,您将得到bytestring输出。 加载是相同的,但是使用unicode或bytestring输入。转储将尝试 若要执行相同操作,则转储将尝试确定类型。所有的口述和 数组应该是完全同构的(或者完全由 Unicode字符串或完全由字节字符串组成)。不强制执行 客户端未定义,将来可能是一个显式错误。 另一个未定义的操作是在任何字符串中嵌入换行符。
唯一真正模棱两可的情况是在给定空的dict时转储。 dumps将返回一个空str对象,它在python 3上是unicode,在python3上是bytes Python2。
对于解析为列表的结构,逻辑如下:
- 任何以键结尾的下划线和非负整数都将自动强制 一张清单。
- 整数的实际值并不重要。他们将被命令 基于他们的小数顺序。漏洞和起始索引不受影响。
- 如果字段具有给定的整数索引,但也具有 相同的名称,非索引字段将被赋予最高优先级(本质上是 指数-1)
- 默认情况下,列表的输出是1索引的,但这可以通过kwarg进行更改。 如果出于任何原因需要孔,则应将数组预处理为 常规dict映射。
默认情况下,此格式与订单无关,但您可以使用OrderedDict或 保持阅读和写作秩序的东西。这确实意味着倾销 加载一个对象(反之亦然)并不能保证得到完全相同的结果 表示法,但在一行中执行任意3个交替操作通常应该。