Как правильно jsonify документов Mon go DB, когда "ObjectId не JSON сериализуемый?" - PullRequest
1 голос
/ 04 апреля 2020

Я настраиваю MongoDB для моего Python приложения и имею этот код:

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

, который выдает эту ошибку: TypeError: Объект типа ObjectId не JSON сериализуемый из-за _id поле, являющееся '_id': ObjectId ('5e8676dc0d16f3567167d889').

Как мне обойти это?

1 Ответ

1 голос
/ 05 апреля 2020

Где-то нашел этот код, и он работает сейчас. * Пожалуйста, отметьте, если кто-нибудь знает, откуда это.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...