Python jinja2:将字符串转换为dict对象?

Python jinja2:将字符串转换为dict对象?,python,flask,jinja2,Python,Flask,Jinja2,我在数据库中存储了一个json字符串,当它被取出并显示在模板上时,它就是一个字符串。我想将其转换为dict对象,以便直接访问内容 string=“{a':1,'b':3}” {{obj}-->字符串“{'a':1,'b':3}” {{obj.b}->我想像访问对象一样访问它。在临时文件中编写以下代码,并在后端编写函数: {{ obj.b | str_to_obj }} 将此代码放入jinja筛选器文件: for convert str to dic object def str_to_ob

我在数据库中存储了一个json字符串,当它被取出并显示在模板上时,它就是一个字符串。我想将其转换为dict对象,以便直接访问内容

string=“{a':1,'b':3}”

{{obj}-->字符串“{'a':1,'b':3}”


{{obj.b}->我想像访问对象一样访问它。

在临时文件中编写以下代码,并在后端编写函数:

{{ obj.b | str_to_obj }}
将此代码放入jinja筛选器文件:

for convert str to dic object 

def str_to_obj(str):

    return eval(str)
并在您的管理文件中写入以下代码:

app.jinja_env.filters['str_to_obj'] = jinja_filters.str_to_obj

Ref:

?@bereal否我正在寻找一个过滤器,以便能够将字符串转换为我可以在jinja模板中访问的对象。您可以在jinja中使用任何Python表达式或注册自己的过滤器。为什么要在模板中而不是在从数据库加载值的视图中执行此操作?eval()被认为是糟糕的编程实践,因为它允许用户动态执行任意Python代码,因此会导致否决票。看见
obj_in_string = "{'a':1, 'b':3}"
{{ obj_in_string | tojson }}