我正在使用 Python/Flask,但在将我的 Python 对象转换为有效的 json 对象时遇到了麻烦。
@app.route('/')
@app.route('/index')
@login_required
def index():
sites = Site.query.filter(Site.id==2).all()
site_list = []
for site in sites:
site_element = {}
site_element['long'] = site.longitude
site_element['lat'] = site.latitude
site_element['id'] = site.id
site_element['name'] = 'test'
site_list.append(site_element)
site_json = json.dumps(site_list, separators=(',', ':'))
return render_template('index.html', title='Home', site_json=site_json)
我正在像这样使用 js 中的 json:
var markers = JSON.parse('{{ site_json | tojson | safe }}');
它导致以下错误:
Uncaught SyntaxError: JSON.parse: JSON 数据第 1 行第 5 列 JSON 数据后出现意外的非空白字符
对我来说似乎很奇怪:如果我手动构建 json,它就可以正常工作!
@app.route('/')
@app.route('/index')
@login_required
def index():
sites = Site.query.filter(Site.id==2).all()
# site_list = []
# for site in sites:
# site_element = {}
# site_element['long'] = site.longitude
# site_element['lat'] = site.latitude
# site_element['id'] = site.id
# site_element['name'] = 'test'
# site_list.append(site_element)
# site_json = json.dumps(site_list, separators=(',', ':'))
site_json = [{'long':36.02, 'lat':37.04, 'id':2, 'name':'test'}]
return render_template('index.html', title='Home', site_json=site_json)
您应该传递对象而不是字符串。随着json.dumps
你倾销json
as string
。
@app.route('/')
@app.route('/index')
@login_required
def index():
sites = Site.query.filter(Site.id==2).all()
site_list = []
for site in sites:
site_element = {}
site_element['long'] = site.longitude
site_element['lat'] = site.latitude
site_element['id'] = site.id
site_element['name'] = 'test'
site_list.append(site_element)
# site_json = json.dumps(site_list, separators=(',', ':')) <-- this is causing problem
return render_template('index.html', title='Home', site_json=site_list)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句