将 Python Flask JSON 字典导入 JavaScript 错误

Importing Python Flask JSON dictionary into javascript error

本文关键字:导入 JavaScript 错误 字典 JSON Python Flask      更新时间:2023-09-26

我有一个Python Flask网络应用程序,我想将字典数据集传递给javascript,我正在尝试JSON,我可以很好地传递数字,但在使用字符串时似乎抛出错误。

以下是生成 JSON 字符串的 python 的代码片段:view.py


def dumpdata():
DB_name={"name":"aaragh"}  
strng=json.dumps(DB_name)
return render_template('dumpdata.html',result = strng)

这是接收 HTML 文件转储数据.html


<html><body>
<p >{{ result }}</a>
<script>
var data = JSON.parse({{result}});
console.log(data.name);
</script>
</body></html>

以下是错误消息和控制台输出:控制台日志


语法错误:属性 ID 转储数据无效:4

<html><body>
<p >{&#34;name&#34;: &#34;aaragh&#34;}</a>
<script>
var data = JSON.parse({&#34;name&#34;: &#34;aaragh&#34;});
console.log(data.name);
</script>
</body></html>

我认为这无关紧要,但我在 ubuntu chrome 和 win IE 上都遇到了相同的错误。

有什么想法吗?我想我错过了一些明显的东西,但我已经撞了好几天了,但我仍然无法找到解决方案......

谢谢

看看模板过滤器|safe

<html><body>
<p >{{ result|safe }}</a>
<script>
var data = JSON.parse({{ result|safe }});
console.log(data.name);
</script>
</body></html>

烧瓶文档提及
金贾文档提及

var data = JSON.parse({{ result|safe }});

此行应更改为

var data = JSON.parse('{{ result|safe }}');

PS:没有引号对我不起作用。我也在某处读到,在 javascript 中,所有 {{ 变量 }} 只能在引号内访问。

真正对我有用的是什么,用 Python 翻译字典并将其传递给 Javascript 使用......

<script>
  {# passing diffData to javascript in the page template #}
  let diffData = {{ diffData | tojson | safe }};
  console.log(diffData);
  ...the rest of the code...
</script>

所以我不得不将diffData字典传递给模板,并使用Javascript解析字典以特定格式显示结果。

我已经尝试过带引号和不带引号的let diffData = JSON.parse({{ diffData | safe }});,这两种类型,但 Chromium 不断抛出错误,例如:

  • SyntaxError: Unexpected token o in JSON at position 1
  • SyntaxError: Unexpected token ' in JSON at position 1
  • SyntaxError: missing ) after argument list

值得注意的是,我在字典中使用单引号,例如:

{'2019-10-08 11:21': {'2019-10-08': {'KSML': {...

希望这对那里有所帮助。

干杯!