我是python编程的新手。输入的X.yaml文件包含字典列表的列表。我正在尝试打印列表及其子列表项。
输入:X.Yaml
entities:
- level: undefined
name: a
refs:
- b
reqs: []
- level: undefined
name: c
refs:
- b
reqs: []
代码:
data = yaml.load(yamlfile)
for entity in data["entities"]:
#Needed help here.
期望的输出:
-name: a
refs:
- b
reqs: []
-name: c
refs:
- b
reqs: []
答案 0 :(得分:0)
将yaml.dump()
与default_flow_style=False
:
>>> 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`