Python 2.7 在字典中打印多个YAML列表
我是python编程新手。输入X.yaml文件包含字典列表。我正在尝试打印列表及其子列表项 输入:X.YamlPython 2.7 在字典中打印多个YAML列表,python-2.7,list,dictionary,printing,yaml,Python 2.7,List,Dictionary,Printing,Yaml,我是python编程新手。输入X.yaml文件包含字典列表。我正在尝试打印列表及其子列表项 输入:X.Yaml entities: - level: undefined name: a refs: - b reqs: [] - level: undefined name: c refs: - b
entities:
- level: undefined
name: a
refs:
- b
reqs: []
- level: undefined
name: c
refs:
- b
reqs: []
代码:
期望输出:
-name: a
refs:
- b
reqs: []
-name: c
refs:
- b
reqs: []
使用yaml.dump()
如果您不想要“级别”,则首先从实体中删除该级别:
>>> new_entities = [{key: value for key, value in entity.items() if key != 'level'}
... for entity in data['entities']]
>>>
>>> print yaml.dump(new_entities, default_flow_style=False)
- name: a
refs:
- b
reqs: []
- name: c
refs:
- b
reqs: []
>>>
编辑:如果列表和词典的理解令人困惑,这是一种冗长(且性能较低)的编写方法:
>>> print yaml.dump(data['entities'], default_flow_style=False)
- level: undefined
name: a
refs:
- b
reqs: []
- level: undefined
name: c
refs:
- b
reqs: []
>>> new_entities = [{key: value for key, value in entity.items() if key != 'level'}
... for entity in data['entities']]
>>>
>>> print yaml.dump(new_entities, default_flow_style=False)
- name: a
refs:
- b
reqs: []
- name: c
refs:
- b
reqs: []
>>>
>>> new_entities = []
>>> for entity in data['entities']:
... new_ent = {}
... for key, value in entity.items():
... if key != 'level':
... new_ent[key] = value
... new_entities.append(new_ent)
...
>>> # then dump `new_entities`