Add the key_name/value_name options to the dict2items filter (#45550)

* Add the key_name/value_name options to dict2items - as with items2dict, allow users to configure the key/value name for dict2items, add "version added" and examples
This commit is contained in:
Raymond Wanyoike 2018-09-17 23:53:52 +03:00 committed by Alicia Cozine
parent 7092dd7fbf
commit c41632fad2
2 changed files with 21 additions and 2 deletions

View file

@ -200,6 +200,25 @@ into::
- key: Environment
value: dev
.. versionadded:: 2.8
``dict2items`` accepts 2 keyword arguments, ``key_name`` and ``value_name`` that allow configuration of the names of the keys to use for the transformation::
{{ files | dict2items(key_name='file', value_name='path') }}
Which turns::
files:
users: /etc/passwd
groups: /etc/group
into::
- file: users
path: /etc/passwd
- file: groups
path: /etc/group
items2dict filter
`````````````````

View file

@ -494,7 +494,7 @@ def subelements(obj, subelements, skip_missing=False):
return results
def dict_to_list_of_dict_key_value_elements(mydict):
def dict_to_list_of_dict_key_value_elements(mydict, key_name='key', value_name='value'):
''' takes a dictionary and transforms it into a list of dictionaries,
with each having a 'key' and 'value' keys that correspond to the keys and values of the original '''
@ -503,7 +503,7 @@ def dict_to_list_of_dict_key_value_elements(mydict):
ret = []
for key in mydict:
ret.append({'key': key, 'value': mydict[key]})
ret.append({key_name: key, value_name: mydict[key]})
return ret