database - 在 FastaApi 中请求文件
问题描述
我正在检索一个 csv 文件,该文件通过前端的表单发送到我的 fastapi 中的 api。该文件以 UploadFile 的形式恢复(原则上很好,因为如果我执行 file.filename 它会返回我上传到前端的 csv 的名称)但是当我将它传递给我的 InsertData 函数时,该函数需要一个 csv 并上传它到数据库,这给了我一个错误。有人可以告诉我如何更改我返回的文件类型吗?或者 InsertData 函数应该发生什么?这里我留下InsertData函数和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 .... ")
解决方案
推荐阅读
- c# - .NET Core 3.1 AWS Lambda 无法加载文件或程序集 System.Runtime.Loader,版本 = 4.1.1.0
- html - 如何在使用 For Loop 遍历 Django 模板中 ModelForm 的所有字段时访问单个字段?
- android-jetpack-compose - 嵌套滚动列和 LazyList
- powerbi - 在 Power BI 中将是/否列转换为 1/0
- c++ - 父状态上的 Qt 信号转换被子状态覆盖
- excel - 使用 Powershell 根据特定值删除 excel 行
- biopython - Biopython的PDB模块可以处理CONECT记录吗
- .net - Dotnet 构建失败,引用了其他 git 分支中不存在的旧文件
- powershell - Get-ChildItem 注册表项,仅提取键名
- r - 是否可以在 Shiny 中显示使用 system(wait=T) 运行的外部程序的日志?