Fastapi -Probleme mit MongoDB - TypeError: 'ObjectID' Objekt ist nicht iterbar
Posted: 13 Apr 2025, 09:23
Ich habe einige Probleme, die über Fastapi in MongoDB einfügen. < /p>
Der folgende Code funktioniert wie erwartet. Beachten Sie, wie die Antwort Variable nicht als Antwort_TO_MONGO () verwendet wurde.
Wenn ich jedoch predict_model () wie diese schreibe und die Antwort an response_to_mongo () :
übergebene
Aus meiner Lektüre scheint dies an BSON/JSON -Problemen zwischen Fastapi und Mongo zurückzuführen zu sein. Warum funktioniert es jedoch im ersten Fall, wenn ich keine Variable verwende? Liegt das an der asynchronen Natur von Fastapi?
Der folgende Code funktioniert wie erwartet. Beachten Sie, wie die Antwort Variable nicht als Antwort_TO_MONGO () verwendet wurde.
Code: Select all
app = FastAPI()
def response_to_mongo(r: dict):
client = pymongo.MongoClient("mongodb://mongo:27017")
db = client["models"]
model_collection = db["example-model"]
model_collection.insert_one(r)
@app.post("/predict")
async def predict_model(features: List[float]):
prediction = model.predict(
pd.DataFrame(
[features],
columns=model.feature_names_in_,
)
)
response = {"predictions": prediction.tolist()}
response_to_mongo(
{"predictions": prediction.tolist()},
)
return response
übergebene
Code: Select all
@app.post("/predict")
async def predict_model(features: List[float]):
prediction = model.predict(
pd.DataFrame(
[features],
columns=model.feature_names_in_,
)
)
response = {"predictions": prediction.tolist()}
response_to_mongo(
response,
)
return response
< /code>
Ich erhalte einen Fehler, der angibt: < /p>
TypeError: 'ObjectId' object is not iterable