python中的yaml
库无法检测重复的键。这是一个has been reported years ago的bug,目前还没有修复。
我想找到一个体面的解决这个问题。创建一个返回所有密钥的regex
有多合理?那么就很容易发现这个问题。
有没有正则表达式大师能建议一个正则表达式,它能提取所有的键来找到重复的键?
文件示例:
mykey1:
subkey1: value1
subkey2: value2
subkey3:
- value 3.1
- value 3.2
mykey2:
subkey1: this is not duplicated
subkey5: value5
subkey5: duplicated!
subkey6:
subkey6.1: value6.1
subkey6.2: valye6.2
3条答案
按热度按时间7cwmlq891#
yamllint命令行工具可以完成您想要的任务:
具体地说,它有一个规则
key-duplicates
,可以检测重复和相互覆盖的密钥:(It有许多其他的规则,您可以启用/禁用或调整。)
hmtdttj42#
覆盖内置加载器是一种更轻量级的方法:
然后:
wlzqhblo3#
ErichBSchulz非常努力。谢谢你的固定代码。我在这里做了一些小改动。使用行和列更新文件名。