Ich habe ein Ergebnis an Javascript in JSON übergeben. Aber wenn ich var myList = {{ pass_tmp|tojson|safe }}
verwende, um das Ergebnis in json umzuwandeln, gibt es einen Fehler, der besagt, dass TypeError: ObjectId('') is not JSON serializable
. Ich habe diese Frage TypeError: ObjectId('') is not JSON serializable gelesen. Aber die Situation in dieser Frage ist ein wenig anders als mine.Ich muss dies zu JSON in einer Flasche Vorlage anstelle einer Python-Datei konvertieren.Und ich muss den Befehl var myList = {{ pass_tmp|tojson|safe }}
verwenden, um dies aus HTML zu übergeben zu Javascript. So frage ich mich, ob ich ObjectId
zu String
konvertieren kann? Hier ist meine Flasche App-Code:Wie konvertiert man ObjectId in Python in String?
@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)
Hier ist meine Vorlage (Javascript-Code):
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$);
}
}
So hat jemand gute Vorschläge hat, dieses Problem zu lösen?
http://stackoverflow.com/questions/23902596/how-to-use-flask-jsonify-and-render-a-template -in-a-flash-route Nur versuchen. Ich bin nicht zuversichtlich. –
Ich habe dieses Problem gelöst, indem Sie einfach JSON an die Vorlage übergeben ~~~ Danke für Ihre Hilfe trotzdem –
Ihre Begrüßung. :) –