Ansible - Convert a list in a dictionary to a string using the join filter
                
            
            
            
             
            
            
                           
                
            
            
            
                
    
    
     
            
                
                    by
                    Jeremy Canfield  |  
                    Updated: April 06 2023
                    
                          |  Ansible articles
                    
                    
                    
                
            
            Let's say you have a dictionary that contains a list, perhaps like this.
---
- hosts: localhost
  tasks:
  - set_fact:
      dictionary: { list: [ 'foo', 'bar' ] }
  - debug:
      var: dictionary
...
Which should print the following where the list is a list.
ok: [localhost] => {
    "dictionary": {
        "list": [
            "foo", 
            "bar"
        ]
    }
}
Typically, you can just use the join filter to convert the list to a string.
---
- hosts: localhost
  tasks:
  - set_fact:
      dictionary: { list: [ 'foo', 'bar' ] }
  - debug:
      msg: "{{ item.value|join }}"
    with_dict: "{{ dictionary }}"
...
Which should return the following.
ok: [localhost] => (item={u'key': u'list', u'value': [u'foo', u'bar']}) => {
    "msg": "foobar"
}
If the join filter used in this way fails to convert the list to a string, you can try this.
---
- hosts: localhost
  tasks:
  - set_fact:
      dictionary: { list: [ 'foo', 'bar' ] }
  - debug:
      msg: "{{ item.value|map('join')|join }}"
    with_dict: "{{ dictionary }}"
...
Did you find this article helpful?
If so, consider buying me a coffee over at 