【python】避坑指南:fastapi定义请求体应该是字符串但实际变成了list
2023-09-11 14:22:09 时间
今天在写接口的时候遇到一个尴尬的现象,定义的ItemObj作为post请求体应该是一个字典(dict),
期待如下:
{
"sn": 0,
"id":0,
"name": "string"
}
first code :
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Infos(BaseModel):
sn: int = None,
id: int = None,
name: str
@app.post(path='/')
async def demo(info: Infos):
return {"msg": "wsw"}
if __name__ == '__main__':
import os
import uvicorn
name_app = os.path.splitext(os.path.basename(__file__))[0]
uvicorn.run(app=f"{name_app}:app", host="127.0.0.1", port=8066, reload=True)
一个规规矩矩的字典的要求而已,
但是实际中怎么都不是,而且格式还很诡异,前几个是列表形式,最后一个正常的了,形如下:
{
"sn": [
null
],
"id": [
null
],
"name": "string"
}
sencode code
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Infos(BaseModel):
sn: int = None
id: int = None
name: str
@app.post(path='/')
async def demo(info: Infos):
return {"msg": "wsw"}
if __name__ == '__main__':
import os
import uvicorn
name_app = os.path.splitext(os.path.basename(__file__))[0]
uvicorn.run(app=f"{name_app}:app", host="127.0.0.1", port=8066, reload=True)
对比了之前的代码感觉方式都是一样,而且也没啥复杂操作就是不行,实在是太邪门了,各种疑问在脑海浮现,哎。。。。。。
废了半天劲都没搞清楚是哪里的问题,还看了了几篇文章还是没有发现任何思路,不知道哪里来了一个feel,就是定义Infos类的时候每项后面都有一个逗号,会不会是这个看不起眼的逗号搞的鬼,下意识感觉问题只能出在这了,别的地方没有理由出错了。
现在不得不把逗号去掉,重新运行一下,果不其然还真是这里的问题,前后花费差不多耗费40分钟,各种无助的内心style太煎熬了,好在问题得到的根本性的解决,实在是太粗心了,在这里记录下
喜欢就给个关注,哈哈哈~~~~~~
相关文章
- Python基础(3)--列表和元组
- Python命令行参数解析模块getopt使用实例
- python实现在目录中查找指定文件的方法
- python统计一个文本中重复行数的方法
- 在Python中使用glob模块查找文件路径的方法
- 使用Python的PIL模块来进行图片对比
- python中精确输出JSON浮点数的方法
- Python 入门(四)List和Tuple类型
- python:pip升级pip本身和setuptools(Python 3.7.15)
- 肯德尔(Kendall)相关系数概述及Python计算例
- python模块之email: 电子邮件编码解码 (一、解码邮件)
- Python编程:利用python编程实现对基于时间序列的数据(dataframe格式)按照指定时间范围进行单方向关联,不存在的日期补充为默认的NaN
- 已解决Visit python.org to download an earlier version of Python.
- 〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件
- 功能异常强大,推荐这款 Python 时序异常检测神器
- Python学习11:使用list和tuple
- 【 华为OD机试 2023】猜字谜(C++ Java JavaScript Python)
- Python编程:twine模块打包python项目上传pypi
- Python编程:python-attrs模块的简单使用
- Python语言的12个基础知识点小结
- python之celery使用详解一
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- Python爬虫超详细讲解(零基础入门,小白也都看的懂)
- Python图像处理PIL各模块详细介绍
- 【Python】list 列表中递归插入数据