yaml中的最大嵌套深度是多少?

yaml中的最大嵌套深度是多少?,yaml,Yaml,我正在为configs编写一些yaml模板,它们开始有很多嵌套 yaml中的最大可能嵌套深度和最大建议嵌套深度是多少?yaml中的嵌套没有限制 但是您使用的软件可能有一些限制,大多数情况下,您会遇到内存或CPU限制。我不知道最近有任何库有硬限制,除非因为缩进溢出整数而开始遇到限制;-) 从YAML 1.2开始,规范对隐式键施加的唯一限制是1024个字符: foo:bar#好的 酒吧#也可以 :bar#不好 无论键是标量(第一行)还是集合节点(第二行),这都是禁止的。因此,它实际上限制了隐式键中

我正在为configs编写一些yaml模板,它们开始有很多嵌套


yaml中的最大可能嵌套深度和最大建议嵌套深度是多少?

yaml中的嵌套没有限制


但是您使用的软件可能有一些限制,大多数情况下,您会遇到内存或CPU限制。我不知道最近有任何库有硬限制,除非因为缩进溢出整数而开始遇到限制;-)

从YAML 1.2开始,规范对隐式键施加的唯一限制是1024个字符:

foo:bar#好的
酒吧#也可以
:bar#不好
无论键是标量(第一行)还是集合节点(第二行),这都是禁止的。因此,它实际上限制了隐式键中的嵌套。但是,您只需使用显式键即可:

?福
:巴
? [富]
:巴
? 
:巴
除此之外,您不必担心嵌套,因为手写文件不太可能达到实现强加的限制。当然,您可以测试您使用的实现的限制,例如PyYAML:

导入yaml,回溯
从yaml.constructor导入constructor错误
对于范围内的i(1281024):
打开,关闭“”
对于范围(0,i)内的j:
打开,关闭=打开+“[”,关闭+“]”
尝试:yaml.load(打开+关闭)
除:
traceback.print_exc()
打印(“深度失败”+str(i))
出口(1)
这将产生(一段时间后):

495层的可能深度似乎足够了

[…]
RecursionError: maximum recursion depth exceeded
failed at depth 496