Python到Javascript JSON对象(Flask)[重复]

Posted

技术标签:

【中文标题】Python到Javascript JSON对象(Flask)[重复]【英文标题】:Python to Javascript JSON objects (Flask) [duplicate] 【发布时间】:2015-06-29 19:18:26 【问题描述】:

我正在尝试创建一个简单的 Flask 应用程序,其中在服务器上生成一个整数数组并发送到客户端。我想在控制台中查看整数数组。这是 app.py 中的一些示例(工作)代码:

from flask import Flask, render_template, request, url_for

import random, json

app = Flask(__name__)

@app.route('/',  methods=['GET'])
def form():
    json_helper = 
    json_helper['randoms'] = [random.random() for _ in range(40)]
    json_object = json.dumps(json_helper)
    return render_template('sim0625.html', s_data=json_object)

if __name__ == '__main__':
  app.run(debug=True)

这里是 javascript 前端的 sn-p:

<script>

  var data_xyz =  s_data|tojson ;

  var JSONObject = JSON.parse(data_xyz);
  console.log(JSONObject.randoms);  

 </script>

不幸的是,我的网页上没有任何 javascript 工作,并且显示的错误消息是“Uncaught SyntaxError: Unexpected token u”。

谁能解释一下如何解决这个问题?谢谢。我的猜测是 JSON 对象正在变成字符串。

注意:前端的代码改编自这个 SO 问题:Extracting data from json object in jQuery or JS

【问题讨论】:

【参考方案1】:

您正在通过变量 s_data 将 JSON 发送到模板。

在模板中,您将该变量呈现为一个名为data_xyzJavaScript 变量。在下一行中,您尝试引用 Jinja 变量而不是 JavaScript 变量:

var JSONObject = JSON.parse(data_xyz);

将其更改为:

var JSONObject = JSON.parse(data_xyz);

【讨论】:

谢谢!!一个问题:我认为我的 app.py 中的 json.dumps() 方法正在获取一个字符串并将其转换为 JSON 对象。因此,我认为客户端正在从服务器接收 JSON 对象(不是字符串)。如果客户端确实在接收 JSON 对象(而不是字符串),为什么需要这两行代码? “var data_xyz = s_data|tojson ; var JSONObject = JSON.parse(data_xyz);”据我了解,这两行代码将字符串转换为 JSON 对象。 @codersun3 json.dumps: "将 obj 序列化为 JSON 格式的 str"

以上是关于Python到Javascript JSON对象(Flask)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jjson - 支持注释的 json 和 javascript 对象解析之 Python 模块

jjson - 支持注释的 json 和 javascript 对象解析之 Python 模块

jjson - 支持注释的 json 和 javascript 对象解析之 Python 模块

运行 CGI Python Javascript 以检索 JSON 对象

Python 和 JavaScript 之间的 JSON 日期时间

将 python/django 变量作为 JSON 传递给 javascript?