如何在python中将ObjectId转换为String?

2024-04-29 06:23:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用json将结果传递给javascript。但是当我使用var myList = {{ pass_tmp|tojson|safe }}将结果转换为json时,有一个bug说TypeError: ObjectId('') is not JSON serializable。我读过这个问题TypeError: ObjectId('') is not JSON serializable,但这个问题的情况与我的有点不同,我必须在烧瓶模板中而不是python中将其转换为json文件。和我必须使用命令var myList = {{ pass_tmp|tojson|safe }}将它从html传递到javascript.So我想知道我能不能把ObjectId转换成{}? 这是我的烧瓶应用程序代码:

@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)代码:

^{pr2}$

那么,有人有什么好的建议来解决这个问题吗?在


Tags: namejsonisvarnotpassjavascriptdetails
1条回答
网友
1楼 · 发布于 2024-04-29 06:23:31

我只需将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 }}而不是{}

相关问题 更多 >