我想知道是否有一种简单的方法来解析由条目列表组成的YAML文档,作为PyYAML的python生成器。在
例如,给定文件
# foobar.yaml
---
- foo: ["bar", "baz", "bah"]
something_else: blah
- bar: yet_another_thing
我想做些类似的事情
^{pr2}$我知道有全部加载,它可以实现类似的功能,但您需要将每个记录视为自己的文档。我之所以这么问是因为我有一些非常大的文件,我想转换成YAML,然后用低内存占用进行解析。在
我看了一下PyYAML事件API,但它吓到了我=)
我能理解Events API让你害怕,它只会给你带来这么多。首先,您需要跟踪深度(因为您有顶级复杂的序列项,以及“bar”、“baz”等)。 而且,在正确地剪切低级别序列事件元素之后,您必须将它们输入到编写器中以创建节点(最终是Python对象),这一点也不简单。在
但是由于YAML使用缩进,即使对于跨越多行的标量,您也可以使用一个简单的基于行的解析器来识别每个序列元素的起始位置,并一次一个地将这些元素输入正常的
load()
函数:导致:
^{pr2}$我在这里使用了PyYAML的增强版,ruamel.yaml,但PyYAML应该以同样的方式工作。在
相关问题 更多 >
编程相关推荐