python 2.7 - print multiple YAML lists in a dictionary -


i new python programming. input x.yaml file contains list of list of dictionaries. trying print list , it's sub-list items.

input:x.yaml

    entities:         - level: undefined           name:           refs:               - b           reqs: []         - level: undefined           name: c           refs:               - b           reqs: [] 

code:

data = yaml.load(yamlfile) entity in data["entities"]:      #needed here. 

desired output:

-name:  refs:      - b  reqs: [] -name: c  refs:     - b  reqs: [] 

use yaml.dump() default_flow_style=false:

>>> print yaml.dump(data['entities'], default_flow_style=false) - level: undefined   name:   refs:   - b   reqs: [] - level: undefined   name: c   refs:   - b   reqs: [] 

and if don't want 'level', first remove entities:

>>> new_entities = [{key: value key, value in entity.items() if key != 'level'} ...                 entity in data['entities']] >>> >>> print yaml.dump(new_entities, default_flow_style=false) - name:   refs:   - b   reqs: [] - name: c   refs:   - b   reqs: []  >>> 

edit: if list , dictionary comprehensions confusing, long (and lower performance) way write it:

>>> new_entities = [] >>> entity in data['entities']: ...     new_ent = {} ...     key, value in entity.items(): ...         if key != 'level': ...             new_ent[key] = value ...     new_entities.append(new_ent) ... >>> # dump `new_entities` 

Comments