Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在字典中打印多个YAML列表_Python 2.7_List_Dictionary_Printing_Yaml - Fatal编程技术网

Python 2.7 在字典中打印多个YAML列表

Python 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

我是python编程新手。输入X.yaml文件包含字典列表。我正在尝试打印列表及其子列表项

输入:X.Yaml

    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`