Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript访问python对象列表_Javascript_Python_Json_Flask - Fatal编程技术网

从javascript访问python对象列表

从javascript访问python对象列表,javascript,python,json,flask,Javascript,Python,Json,Flask,我正在使用flask和python构建一个web应用程序。 我在python中有一个json可解析类 class uItem: itemCount = 0 def __init__(self, id, name): self.id = id self.name = name 我需要从html访问一个数组和这个类的对象列表 这就是我创建对象并使其可json解析的地方 from delClass import uItem counter = 0 name =

我正在使用flask和python构建一个web应用程序。 我在python中有一个json可解析类

class uItem:
   itemCount = 0

   def __init__(self, id, name):
      self.id = id
      self.name = name
我需要从html访问一个数组和这个类的对象列表

这就是我创建对象并使其可json解析的地方

from delClass import uItem

counter = 0
name = ["proudct1","product2","product3"]
objarray = []

for n in name:
    obj = uItem(counter, n)
    r = json.dumps(obj.__dict__)
    counter = counter + 1
    objarray.append(r)
这是我加载索引页的地方

@app.route('/', methods=['GET', 'POST'])
def main():
    return render_template('jsex.html', dlist=objarray)
我听到一个错误说

未捕获的语法错误:丢失)参数列表后

我该如何解决这个问题。
从javascript访问python列表有更好的方法吗?

显然,这一行是根本原因

var counts = JSON.parse("["{\"id\": 0, \"name\": \"product1\"}", "{\"id\": 1, \"name\": \"product2\"}", "{\"id\": 2, \"name\": \"product3\"}"]");

要解决此问题,请使用
flask.jsonify

from flask import jsonify

@app.route('/', methods=['GET', 'POST'])
def main():
    return jsonify(objarray)
json返回如下所示:

[
  "{\"name\": \"proudct1\", \"id\": 0}",
  "{\"name\": \"product2\", \"id\": 1}",
  "{\"name\": \"product3\", \"id\": 2}"
]
使用
jsonify
后,您不再需要使用
JSON.parse
。ajaxget/post的结果都是一个javascript对象。下面是nodejs中javascript的示例代码

var axios = require('axios');
axios.get('http://localhost:5000').then(function(res){
    var data = res.data;
    console.log(data);
    console.log(typeof(data));
    console.log(data[0]); 
})
屏幕上的结果是:

[ '{"id": 0, "name": "proudct1"}',
  '{"id": 1, "name": "product2"}',
  '{"id": 2, "name": "product3"}' ]
object
{"id": 0, "name": "proudct1"}

你能添加一个错误窗口的完整截图吗?我添加了一个完整错误的截图