首页 > 解决方案 > 通过模板输出时 Python 字典对象转换为 JSON

问题描述

我正在使用 Flask 框架来获取一个字典对象,其中键设置为用户 ID,值设置为用户名。从 Flask 的视图中,我使用 jason.dumps 将其转换为 json,并在渲染模板时直接输出到 Javascript 代码,例如:

<script type="text/javascript">
   var = {{ users }};
   ...
</script>

当我检查呈现的 HTML 代码时,输​​出的字符串值如下所示,为一位用户提供的示例:

var = {&#34;5d626ba11c9d4400004665b5&#34;: &#34;shears&#34;};

如您所见,它将引号字符编码为其字符值。如何在 Javascript 中将其作为 JSON 对象输出?

标签: javascriptjqueryjsonpython-3.xflask

解决方案


您可以在字符串中呈现模板变量,取消转义 HTML,然后将结果解析为 JSON。

function unescapeHtml(safe) {
  return $('<div />').html(safe).text();
};

var usersDict = JSON.parse(unescapeHtml('{{ users }}'));

usersDict 变量是一个对象:

Object { 5d626ba11c9d4400004665b5: "shears" }

希望这可以帮助。


推荐阅读