Jinja2模板语法错误求助:expected token ',', got '{'
排查Jinja2语法错误:
expected token ',', got '{' 这个错误核心是Jinja2模板的语法结构出现了解析冲突,以下是具体排查方向:
- 检查函数/过滤器的参数分隔:重点看模板里的函数调用、过滤器使用代码,是否漏写了参数之间的逗号。比如错误写法
{{ get_data(user_id { 'status': 'active' }) }},正确应该是{{ get_data(user_id, { 'status': 'active' }) }},漏逗号会让Jinja2把后续的{当成意外token。 - 排查非法嵌套的大括号:比如错误使用
{{ user.{{ role }}_info }},这种嵌套写法不符合Jinja2规则,要改成{{ user[role + '_info'] }}或者{{ user.get(f"{role}_info") }}。 - 定位报错行的语法结构:结合截图里的代码行,检查是否有类似
{% if condition { ... } %}的错误写法,正确的条件块应该是{% if condition %} ... {% endif %}。 - 核对字符串拼接语法:如果是字符串拼接时出错,比如错误写了
{{ "prefix" { item.name } }},要改成{{ "prefix" ~ item.name }}或者{{ f"prefix{item.name}" }}。
错误示例与修正
错误写法:
{{ render_card(title { 'color': 'red' }) }}
修正后:
{{ render_card(title, { 'color': 'red' }) }}
错误写法:
{{ config.{{ env }}_url }}
修正后:
{{ config[env + '_url'] }}
内容的提问来源于stack exchange,提问作者Janmesh Boricha
相关产品推荐
相关产品推荐

