【问题标题】:Importing Python Flask JSON dictionary into javascript error将 Python Flask JSON 字典导入 javascript 错误
【发布时间】:2014-11-17 22:15:30
【问题描述】:

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

这里是python生成JSON字符串的代码sn-p: 视图.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>

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


SyntaxError: 无效的属性 id dumpdata: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 上都遇到了同样的错误。

有什么想法吗?我想我遗漏了一些明显的东西,但我已经为此努力了好几天,但我仍然无法找到解决方案......

谢谢

【问题讨论】:

    标签: javascript python json flask


    【解决方案1】:

    看看模板过滤器|safe

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

    Flask docs mention
    Jinja docs mention

    【讨论】:

    • 谢谢,我应用了您的建议来包含模板过滤器 |safe,代码完美运行!谢谢
    【解决方案2】:
    var data = JSON.parse({{ result|safe }});
    

    这行应该改成

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

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

    【讨论】:

      【解决方案3】:

      实际上对我有用的是,用 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': {...
      

      希望这对一些人有所帮助。

      干杯!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-23
        • 2015-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-26
        • 1970-01-01
        • 2016-01-05
        相关资源
        最近更新 更多