Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确地JSONIfMongo DB文档;ObjectId不可JSON序列化?“;_Python_Mongodb_Rest_Flask - Fatal编程技术网

Python 如何正确地JSONIfMongo DB文档;ObjectId不可JSON序列化?“;

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(

我正在为我的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(名字):
打印(名字)
返回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字段不可序列化。