Python 如何正确地JSONIfMongo DB文档;ObjectId不可JSON序列化?“;
我正在为我的Python应用程序设置MongoDB,代码如下:Python 如何正确地JSONIfMongo DB文档;ObjectId不可JSON序列化?“;,python,mongodb,rest,flask,Python,Mongodb,Rest,Flask,我正在为我的Python应用程序设置MongoDB,代码如下: @app.route('/user/<firstName>', methods=['GET']) def getUser(firstName): print(firstName) return jsonify({'users': Users.find({'first_name': firstName})[0]}) @app.route('/user/',方法=['GET']) def getUser(
@app.route('/user/<firstName>', methods=['GET'])
def getUser(firstName):
print(firstName)
return jsonify({'users': Users.find({'first_name': firstName})[0]})
@app.route('/user/',方法=['GET'])
def getUser(名字):
打印(名字)
返回jsonify({'users':users.find({'first_name':firstName})[0]})
这会引发以下错误:TypeError:ObjectId类型的对象不可JSON序列化
由于\u id
字段为“\u 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
你看到了吗?这回答了你的问题吗@Joe不,他们没有。如果将BSON转换为json的json_util函数没有帮助,那么您想做什么?@Joe试图jsonify Pymongo对象,但我能够使用自定义json编码器。这是因为ObjectId字段不可序列化。