【问题标题】:How do I check if a key exists in a yaml file Python如何检查 yaml 文件 Python 中是否存在密钥
【发布时间】:2022-01-11 01:01:53
【问题描述】:

我正在尝试检查 yaml 文件中是否存在用户名

我的文件格式如下:

random_uuid:
    username: ""
random_uuid:
    username: ""
random_uuid:
    username: ""

谷歌搜索后我仍然不确定该怎么做,因为它必须查看所有 uuid

【问题讨论】:

标签: python yaml pyyaml


【解决方案1】:

如果这是您的 YAML 文件的结构,只需迭代所有值,直到找到您要查找的内容。假设文件在test.yaml:

#!/usr/bin/env python
import yaml

FILE_PATH = "test.yaml"
LOOKING_FOR_THIS_USER = "Shay"

with open(FILE_PATH, "r") as stream:
    try:
        loaded_yaml = yaml.safe_load(stream)
        for k, v in loaded_yaml.items():
            print(f"{k=}: {v=}")
            if v['username'] == LOOKING_FOR_THIS_USER:
                print(f"Found it! {k} is the user we looked for.")
    except yaml.YAMLError as exc:
        print(exc) 

【讨论】:

    【解决方案2】:

    您可以使用yaml (pyyaml) 模块,并将负载视为python dict。

    import yaml
    
    document = """
      123:
        a: ''
        b: ''
        c: ''
      456:
        a: ''
        b: ''
        c: ''
    """
    yaml.dump(yaml.safe_load(document))
    doc = yaml.safe_load(document)
    
    for key in (123, 456, 789):
        try:
            print(f'{key} - {doc[key]} found')
        except KeyError:
            print(f'{key} - not found')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      相关资源
      最近更新 更多