【问题标题】:How do I print specific values in a key:value list from a YAML file?如何在 YAML 文件的 key:value 列表中打印特定值?
【发布时间】:2015-01-27 10:13:19
【问题描述】:

我刚刚从 bash 脚本切换到 python,我正在尝试通过编写一些代码来理解该语言;请原谅我对python的无知。

我正在尝试确定如何从 YAML 文件中提取特定的键和值。

例如

import yaml

stream = open('test.yaml', 'r')
data = yaml.load(stream)

abc = data['yaml_key']

给了我类似的东西:

{'1': 'a', '2': 'b', '3': 'c'}

如何打印特定的键:值?我希望它会像一个元组一样,我可以这样做:

abc[0]

等等。但不幸的是,当我尝试打印 abc[#] 时,它只是打印出 abc[#],但打印出 abc,给了我 key:value 列表。

对于任何有 Python 经验的人来说,这可能是一件容易的事,但我们将不胜感激。

【问题讨论】:

  • 使用abc["1"],abc["2"]等..
  • abc = print data['yaml_key'] 不是有效的语法。这是您的实际代码吗?
  • 那么你的字典看起来不像{'1': 'a', '2': 'b', '3': 'c'},当你print abc时你看到了什么?
  • 这很奇怪,你可以看到 print({'1': 'a', '2': 'b', '3': 'c'}["2"]) 输出 b
  • 不用担心,如果您有一个不确定是否在字典中的密钥,您可以使用dict.get(your_key),如果密钥不存在,则默认返回 None

标签: python list dictionary yaml


【解决方案1】:

贡献属于 Padraic 的评论,但为了将来参考,加载 key:values 的正确方法是:

abc["key_value"]

在他的回复中还值得注意的是:

abc.keys() // list keys
abc.get("key_value") // get specific key value

【讨论】:

    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多