gpt4 book ai didi

python - Python中解析Yaml : Detect duplicated keys

转载 作者:行者123 更新时间:2023-12-02 06:21:49 31 4
gpt4 key购买 nike

Python 中的 yaml 库无法检测重复的键。这是一个错误 has been reported years ago目前还没有修复。

我想找到一个合适的解决方法来解决这个问题。创建一个返回所有键的正则表达式有多合理?那么这个问题就很容易被发现了。

任何正则表达式大师是否可以建议一个能够提取所有键以查找重复项的正则表达式?

文件示例:

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

最佳答案

重写加载器中的构建是一种更轻量级的方法:

 import yaml
# special loader with duplicate key checking
class UniqueKeyLoader(yaml.SafeLoader):
def construct_mapping(self, node, deep=False):
mapping = []
for key_node, value_node in node.value:
key = self.construct_object(key_node, deep=deep)
assert key not in mapping
mapping.append(key)
return super().construct_mapping(node, deep)

然后:

 yaml_text = open(filename), 'r').read()
data[f] = yaml.load(yaml_text, Loader=UniqueKeyLoader)

关于python - Python中解析Yaml : Detect duplicated keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33490870/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com