繁体   English   中英

当“ObjectId 不是 JSON 可序列化”时,如何正确 jsonify Mongo DB 文档?

[英]How to correctly jsonify Mongo DB documents when “ObjectId is not JSON serializable?”

我正在为我的 Python 应用程序设置 MongoDB,并具有以下代码:

@app.route('/user/<firstName>', methods=['GET'])
def getUser(firstName):
    print(firstName)
    return jsonify({'users': Users.find({'first_name': firstName})[0]})

引发此错误:TypeError:ObjectId 类型的 Object 不是 JSON 可序列化的,因为_id字段为“_id”:ObjectId(“5e8676dc0d16f3567167d889”)。

我该如何解决这个问题?

在某处找到了这段代码,它现在可以工作了。 *如果有人知道这是从哪里来的,请标记。

class JSONEncoder(json.JSONEncoder):
    ''' extend json-encoder class'''
    def default(self, o):
        if isinstance(o, ObjectId):
            return str(o)
        if isinstance(o, datetime.datetime):
            return str(o)
        return json.JSONEncoder.default(self, o)


# use the modified encoder class to handle ObjectId & datetime object while jsonifying the response.
app.json_encoder = JSONEncoder

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM