[英]How to convert ObjectId to String in python?
我在json中将结果传递给了javascript。 但是当我使用var myList = {{ pass_tmp|tojson|safe }}
将结果转换为json时,有一个错误说TypeError: ObjectId('') is not JSON serializable
。 我已经读过这个问题TypeError:ObjectId('')不是JSON可序列化的 。但是这个问题的情况与我的有点不同。我必须将它转换为烧瓶模板中的json而不是python文件。我有使用命令var myList = {{ pass_tmp|tojson|safe }}
将其从html传递给javascript。所以我想知道我是否可以将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$);
}
}
那么有没有人有任何好的建议来解决这个问题?
我通过将json传递给模板而不是结果来解决这个问题。
@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_tmp)
并在模板中使用它: var myList = {{ pass_tmp|safe }}
而不是var myList = {{pass_tmp|tojson|safe}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.