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_xyz
的JavaScript 变量。在下一行中,您尝试引用 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 对象