我正在检索一个csv文件,通过一个表单发送到我的api在fastapi的前端。这个文件以UploadFile的形式恢复(这在原则上是好的,因为如果我做文件。filename它返回我的csv文件上传至前线的名称),然而,当我把它传递给我的InsertData函数,它需要一个csv文件并上传到数据库,这给我一个错误。有人能告诉我,我怎么能改变类型的文件,我得到了回来?InsertData函数会发生什么?
这里我留下了InsertData函数和api的代码。
谢谢你!
API:
from fastapi.datastructures import UploadFile
from starlette.responses import RedirectResponse
from fastapi import File
from model.prueba import MongoDB
router = APIRouter()
@router.post("/prueba", name="Insert the date in mongo", tags=["consultas"])
async def insertDate(file: UploadFile=File(...)):
db = MongoDB.__init__(dBName="HAR", collectionName="date")
MongoDB.InsertData(db,file.file)
方法:
import pymongo
from pymongo import MongoClient
import pandas as pd
import json
class MongoDB(object):
def __init__(dBName=None, collectionName=None):
client = MongoClient("localhost", 27017, maxPoolSize=50)
DB = client[dBName]
collection = DB[collectionName]
return(collection)
def InsertData(collection, path):
df = pd.read_csv(path)
data = df.to_dict('records')
collection.insert_many(data, ordered=False)
print("All the Data has been Exported to Mongo DB Server .... ")