You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jinja2模板中将字符串转为字典?已掌握字符串转列表方法

在Jinja2中将字符串转换为字典

假设你的字符串是键值对用冒号分隔、整体用逗号分隔的格式(比如"name:Alice,age:30,city:NewYork"),可以通过嵌套拆分和字典内置方法实现转换:

{% set target_str = "name:Alice,age:30,city:NewYork" %}
{% set result_dict = {} %}
{% for item in target_str.split(',') %}
    {% set key_value = item.split(':') %}
    {% set _ = result_dict.__setitem__(key_value[0], key_value[1]) %}
{% endfor %}

代码说明:

  1. 先用split(',')把原字符串拆成单个键值对的列表,比如得到["name:Alice", "age:30", "city:NewYork"]
  2. 遍历每个键值对,再用split(':')拆成键和值的二元列表,比如["name", "Alice"]
  3. 借助__setitem__方法给空字典添加键值对(Jinja2不支持直接用dict[key] = value的赋值写法)

如果你的字符串是标准JSON格式(比如'{"name":"Alice","age":30}'),可以直接用Jinja2的fromjson过滤器:

{% set json_str = '{"name":"Alice","age":30}' %}
{% set result_dict = json_str|fromjson %}

优化提示:

如果字符串里可能存在空格(比如"name : Alice , age:30"),可以给键和值加上strip()处理多余空格,同时加判断避免拆分失败:

{% for item in target_str.split(',') %}
    {% if ':' in item %}
        {% set key_value = item.split(':') %}
        {% set _ = result_dict.__setitem__(key_value[0].strip(), key_value[1].strip()) %}
    {% endif %}
{% endfor %}

内容的提问来源于stack exchange,提问作者Roberto Esparis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:31:08