Ansible/Jinja dictonary and list methods such as .items(), .keys() and .append() no longer working

I returned from holidays only to find out that re-running an Ansible playbook against a system that has been running unchanged since the beginning the year, only been receiving software updates via openSUSE Leap’s usual channels, suddenly triggered weird unhashable type errors.

Here’s a minimum playbook that will probably work for you, but doesn’t for me anymore:

- hosts: localhost
  remote_user: root

  vars:
    mydict:
      foo: bar
      loo: baz

  tasks:
    - debug:
        msg: "{{ mydict.keys() }}"

This gives me

Unexpected templating type error occurred on ({{ mydict.keys() }}): unhashable type: 'dict'

and I get a similar error message with

unhashable type: 'list'

when trying to call

mylist.append(...)

Mind you this all doesn’t happen when installing with stock openSUSE Leap 15.5 packages, only after applying some Python update I can’t clearly identify yet, and it also happens on openSUSE Leap 15.6.

Here are some alternatives:

Instead of… …use this
dict.keys() dict | dict2items | map(attribute='key')
dict.items() dict | dict2items | map(attribute='item')
mylist.append() set mylist = mylist + [ new_element ]