Jinja2 notes
tips
- string2int
{% set _year = _year | int %}
- sort
{% for _d in _data|sort(attribute='symbol', reverse = True) -%}
- dict update
{% set _=_map.update({_key: did}) %}
- list append
{% set _=_range.append(_year) %}
- loop
{% for _eid, _ename in _ent.items() %}
{% endfor %}
- ifelse
{% if v.get("name") not in _element %}
{% endif %}
example
{% set _ent = d.entity -%}
{% set _dp = d.dataItem -%}
{% set _v = d.value -%}
{% set _cfg = d.option -%}
{# loop元数据,构建dict #}
{% set _map = {} %}
{% set _range = [] -%}
{% set _element = [] %}
{% set _dimension = _cfg.get("dimension") -%}
{# 获取年份排序数组 #}
{% for did, v in _dp.items() -%}
{% set _year = v.get("year") %}
{% set _key = (v.get("name"), v.get("year")) %}
{% set _=_map.update({_key: did}) %}
{% if _year is not none %}
{% set _year = _year | int %}
{% if _year not in _range %}
{% set _=_range.append(_year) %}
{% endif %}
{% endif %}
{% if v.get("name") not in _element %}
{% set _=_element.append(v.get("name")) %}
{% endif %}
{% endfor -%}
{# 遍历实体 #}
{% set entities=[] %}
{% for _eid, _ename in _ent.items() %}
{% set _eitem = {"items": [], "name": _ename} %}
{% for _ele in _element %}
{% set _dp = {"name": _ele, "data": []} %}
{% for _year in _range|sort() %}
{% set _filter_dp=_map.get((_ele, _year|string), "") %}
{% set _value = _v.get(_eid).get(_filter_dp) %}
{% set _ = _dp["data"].append(_value)%}
{% endfor %}
{% set _= _eitem["items"].append(_dp) %}
{% endfor %}
{% set _= entities.append(_eitem) %}
{% endfor %}
{
"dimension": {{_dimension | tojson}},
"entities": {{entities | tojson}},
"range": {{_range | tojson}},
"config": {{_cfg | tojson}}
}