如何在python中从yaml中选择特定属性

2024-04-20 08:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的初学者,尝试从yaml文件中提取数据以在python脚本中使用,假设我的yaml文件如下所示:

---
genre: horror
film:
 -name: conjuring
 -id: 1234
film:
 -name: halloween
 -id: 1222

我该如何选择yaml的每个部分,比如说我想使用python获得名为halloween的电影的id?我写了这样一段话来读入文件:

import yaml

with open("films.yaml", 'r') as stream:
    try:
        code = yaml.load(stream)
        print(code.each)
    except yaml.YAMLError as exc:
        print(exc)

但它只提供以下输出,并没有显示所有内容:

{'genre': 'horror', 'film': {'-name': 'halloween', '-id': 1222}}

感谢您的帮助。你知道吗


Tags: 文件数据nameidyamlstreamascode
2条回答

正如dekin所指出的,问题在于yaml语法。您提供的是“电影”键的重复条目,而不是列表。你知道吗

yaml列表的格式应为:

list_key:
    - item_1_field_1: foo
      item_1_field_2: bar
    - item_2_field_1: baz
      item_2_field_2: goof

你可以这样用yaml表示一个电影列表。。。你知道吗

 -
genre: horror
films:
- name: conjuring
  id: 1234
- name: halloween
  id: 1222

相关问题 更多 >