How to iterate over attributes of an object using Jinja

Solution
from dataclasses import dataclass


@dataclass
class Bean:
    id: str
    name: str


beans = [
        Bean(id=1, name="Guatemalan"),
        Bean(id=2, name="Peruvian"),
        Bean(id=3, name="Hawaiian"),
        ]
import jinja2

t = jinja2.Template('''

{% for bean in beans %}

{% for attr in bean.__dict__.keys() -%}
    
{% endfor -%}

{% endfor %}
{{ attr }}{{ bean[attr] }}
''') print(t.render(beans=beans))
id1 nameGuatemalan
id2 namePeruvian
id3 nameHawaiian
from dataclasses import dataclass, asdict

...

t = jinja2.Template('''

{% for bean in beans %}

{% for attr in bean.keys() -%}
    
{% endfor -%}

{% endfor %}
{{ attr }}{{ bean[attr] }}
''') print(t.render(beans=(asdict(bean) for bean in beans)))