I'm impressed. It works perfectly. Only the first key is split as expected..
On Friday, February 7, 2020 at 7:12:40 PM UTC+1, Vladimir Botka wrote: > > On Fri, 7 Feb 2020 08:14:56 -0800 (PST) > jean-christophe manciot <[email protected] <javascript:>> wrote: > > > I receive some json data which *sometimes* start with the first key > within > > "json_data" variable containing a ':', such as: > > "json_data": { > > "key1:key2": { > > "key3": [ > > "value31", > > "value32", > > "..." > > ] > > } > > } > > > > The goal is to split "key1:key2" into 2 keys so that we end up with: > > "json_data": { > > "key1": { > > "key2": { > > "key3": [ > > "value31", > > "value32", > > "..." > > ] > > } > > } > > } > > > Try this > > - set_fact: > json_data1: "{{ json_data1|default({})|combine(my_key) }}" > vars: > my_keys: "{{ item.key.split(':') }}" > my_keys_length: "{{ my_keys|length == 1 }}" > my_key: "{{ my_keys_length| > ternary({my_keys[0]: item.value}, > {my_keys[0]: > {my_keys[1:]|join(':')|default('NA'): > item.value}}) }}" > loop: "{{ json_data|dict2items }}" > > HTH, > > -vlado > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/1f82855d-3090-4502-87f1-d3a6aec28aa6%40googlegroups.com.
