【发布时间】:2016-04-19 09:52:08
【问题描述】:
我将结果传递给 json 中的 javascript。但是当我使用var myList = {{ pass_tmp|tojson|safe }}将结果转换为json时,有一个错误说TypeError: ObjectId('') is not JSON serializable。我读过这个问题TypeError: ObjectId('') is not JSON serializable。但是这个问题的情况与我的有点不同。我必须在烧瓶模板而不是python文件中将它转换为json。我必须使用命令var myList = {{ pass_tmp|tojson|safe }}来将此从 html 传递到 javascript.So 我想知道我是否可以将ObjectId 转换为String?
这是我的 Flask 应用程序代码:
@app.route('/details/', methods=['GET'])
def details():
if request.method == 'GET':
mongoClient = pymongo.MongoClient('localhost', 27017)
name = session['name']
print name
db = mongoClient[name]
results = db[name].find()
json_results= []
for result in results:
json_results.append(result)
# json_tmp = toJson(json_results)
return render_template('details.html', pass_tmp=json_results)
这是我的模板(javascript)代码:
var myList = {{ pass_tmp|tojson|safe }}
// Builds the HTML Table out of myList json data from Ivy restful service.
function buildHtmlTable() {
var columns = addAllColumnHeaders(myList);
for (var i = 0 ; i < myList.length ; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0 ; colIndex < columns.length ; colIndex++) {
var cellValue = myList[i][columns[colIndex]];
if (cellValue == null) { cellValue = ""; }
row$.append($('<td/>').html(cellValue));
}
$("#excelDataTable").append(row$);
}
}
那么有人有什么好的建议来解决这个问题吗?
【问题讨论】:
-
stackoverflow.com/questions/23902596/… 试试看。我没有信心。
-
我已经解决了这个问题,只需将json传递给模板~~~谢谢你的帮助
标签: javascript python json serialization