У меня есть API, и я пытаюсь сохранить / опубликовать объект пользователя с помощью Flask-Pymongo.
, но я получаю следующую ошибку
File "/ home /kay / .local / share / virtualenvs / server-iT4jZt3h / lib / python3.7 / site-packages / flask / json / i│ nit .py ", строка 321, в jsonify
│ dumps(данные, отступ = отступ, разделители = разделители) + '\ n', │ File "/home/kay/.local/share/virtualenvs/server-iT4jZt3h/lib/python3.7/site-packages/flask/json/ i│ nit .py ", строка 179, в дампах
│ rv = _json.dumps (obj, ** kwargs) │ Файл" /usr/lib/python3.7/json/ init .py ", строка 238, в дампах
│ ** кВт) .encode (obj) │ Файл" /usr/lib/python3.7/json/encoder.py ", строка 201, вкодировать
│ chunks = list (chunks) │ Файл "/usr/lib/python3.7/json/encoder.py", строка 438, в _iterencode │ o = _default (o) │ File "/ home / kay /link / server / src / run.py ", строка 18, по умолчанию
│ вернуть json.JSONEncoder.default (self, o) │ Файл" /usr/lib/python3.7/json/encoder.py ", строка 179, по умолчанию
│ повышать TypeError (f'Объект типа {o. class . name } '│ TypeError: Объект типа InsertOneResult не является сериализуемым JSON
app / users / resource.py
from flask_restful import Resource
from flask import jsonify, request
from .repository import UsersRepository
from db import mongo
class UsersResource(Resource):
def __init__(self):
self.repository = UsersRepository()
def get(self):
data = {"Users": "Resource"}
res = data, 200
return res
def post(self):
req = request.get_json()
user = {
"email": req.get("email"),
"password": req.get("password")
}
result = mongo.db.users.insert_one(user)
return jsonify(result)
run.py
from flask import Flask
from app import api_bp
from db import mongo
from bson.objectid import ObjectId
import json
import datetime
import os
class JSONEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, ObjectId):
return str(o)
if isinstance(o, set):
return list(o)
if isinstance(o, datetime.datetime):
return str(o)
return json.JSONEncoder.default(self, o)
def create_app(config_filename):
app = Flask(__name__)
app.config.from_object(config_filename)
app.register_blueprint(api_bp, url_prefix='/api')
mongo.init_app(app)
app.json_encoder = JSONEncoder
return app
# def logger():
# def database():
if __name__ == "__main__":
app = create_app("config")
app.run(host='0.0.0.0', port=8080, debug=True)