# Default filter issue

**URL:** <https://forum.ansible.com/t/default-filter-issue/30323>\
**Category:** Ansible Project\
**Created:** [May 14, 2019, 7:23am UTC](https://forum.ansible.com/t/default-filter-issue/30323 "2019-05-14T07:23:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel\_Vasek](https://avatars.discourse-cdn.com/v4/letter/d/82dd89/32.png) [@Daniel\_Vasek](https://forum.ansible.com/u/Daniel_Vasek)\
**Post date:** [May 14, 2019, 7:23am UTC](https://forum.ansible.com/t/default-filter-issue/30323/1 "2019-05-14T07:23:01Z")

</div>

Hello,

Im trying to use default filter:

hosts: [“{{ groups[‘examples’][0] | default(‘localhost’) }}”:5045]

But it return error:

FAILED! =\> {“changed”: false, “msg”: “AnsibleUndefinedVariable: ‘dict object’ has no attribute ‘examples’”}.

I read something about default can use only 1 level deep, but I cannot write more levels properly.

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [May 14, 2019, 7:50am UTC](https://forum.ansible.com/t/default-filter-issue/30323/2 "2019-05-14T07:50:17Z")

</div>

> Hello,
> 
> Im trying to use default filter:
> 
> hosts: ["{{ groups['examples'][0] | default('localhost') }}":5045]
> 
> But it return error:
> 
> FAILED! =\> {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'examples'"}.
> 
> I read something about default can use only 1 level deep, but I cannot write more levels properly.

I suppose you have to accommodate the case where there is no examples entry in "groups" (untested):

{% if 'examples' in groups %}groups['examples'][0] | default('localhost'){% else %}localhost{% endif %}

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Sebastian\_Meyer](https://avatars.discourse-cdn.com/v4/letter/s/779978/32.png) [@Sebastian\_Meyer](https://forum.ansible.com/u/Sebastian_Meyer)\
**Post date:** [May 14, 2019, 8:11am UTC](https://forum.ansible.com/t/default-filter-issue/30323/3 "2019-05-14T08:11:06Z")

</div>

> Hello,
> 
> Im trying to use default filter:
> 
> hosts: ["{{ groups['examples'][0] | default('localhost') }}":5045]

You should be able to use: groups.examples.0 | default(...)

This is the one case where dot notation is simpler/better 🙂

Sebastian

---

<div class="post-metadata">

**Author:** ![Daniel\_Vasek](https://avatars.discourse-cdn.com/v4/letter/d/82dd89/32.png) [@Daniel\_Vasek](https://forum.ansible.com/u/Daniel_Vasek)\
**Post date:** [May 14, 2019, 9:24am UTC](https://forum.ansible.com/t/default-filter-issue/30323/4 "2019-05-14T09:24:19Z")

</div>

This could work, but only if there is no such group. When the group exists, but its empty, it throws error.

Dne úterý 14. května 2019 9:50:36 UTC+2 Stefan Hornburg (Racke) napsal(a):
