相关疑难解决方法(0)

Python - 验证一个列表是否是另一个列表的子集

我需要验证列表是否是另一个列表的一个子集 - 布尔返回是我寻求的全部内容.
在交叉路口之后测试相等的较小列表是最快的方法吗?
考虑到需要比较的数据集数量,性能至关重要.
根据讨论添加更多事实:

  1. 对于许多测试,其中一个列表是否相同?
    它确实是其中一个是静态查找表
  2. 它需要是一个列表吗?
    它没有 - 静态查找表可以是性能最佳的.
    动态的是一个dict,我们从中提取密钥以执行静态查找.

在这种情况下,最佳解决方案是什么?

python list

160
推荐指数
6
解决办法
18万
查看次数

如何在不使用try/catch的情况下测试Python Enum中是否存在int值?

使用Python Enum类,有没有办法测试Enum是否包含特定的int值而不使用try/catch?

使用以下课程:

from enum import Enum

class Fruit(Enum):
    Apple = 4
    Orange = 5
    Pear = 6
Run Code Online (Sandbox Code Playgroud)

如何测试值6(返回true)或值7(返回false)?

python enums

43
推荐指数
9
解决办法
3万
查看次数

根据字段的值使用不同的 Pydantic 模型

我有 2 个 Pydantic 型号 (var1var2)。该方法的输入PostExample可以接收第一模型或第二模型的数据。使用Union有助于解决此问题,但在验证过程中,它会引发第一个模型和第二个模型的错误。

如何做到在填写字段时出现错误时,仅针对某个模型返回验证器错误,而不是同时返回两个模型?(如果有帮助的话,可以通过字段A的长度来区分模型)。

主要.py

@app.post("/PostExample")
def postExample(request: Union[schemas.var1, schemas.var2]):
    
    result = post_registration_request.requsest_response()
    return result
  
  
Run Code Online (Sandbox Code Playgroud)

模式.py

class var1(BaseModel):
    A: str
    B: int
    C: str
    D: str
  
  
class var2(BaseModel):
    A: str
    E: int
    F: str
Run Code Online (Sandbox Code Playgroud)

python pydantic fastapi

14
推荐指数
1
解决办法
2万
查看次数

向最终用户显示 FastAPI 验证错误

我正在寻找一些库或代码示例来将 FastAPI 验证消息格式化为人类可读的格式。例如这个端点:

@app.get("/")
async def hello(name: str):
    return {"hello": name}

Run Code Online (Sandbox Code Playgroud)

如果我们错过name查询参数,将产生下一个 json 输出:

{ 
    "detail":[ 
        { 
            "loc":[ 
                "query",
                "name"
            ],
            "msg":"field required",
            "type":"value_error.missing"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何:

  1. 将其转换为“需要名称字段”(针对各种可能的错误)以显示在吐司中。
  2. 使用它来显示表单验证消息
  3. 如果可能的话,从 api 描述中自己生成表单

python swagger openapi fastapi

7
推荐指数
2
解决办法
2838
查看次数

如何为多个不同对象生成 Pydantic 模型

我需要一个covars包含未知数量条目的变量,其中每个条目都是三个不同的自定义模型之一Pydantic。在本例中,每个条目都描述了我的应用程序的一个变量。

具体来说,我想要covars以下形式。这里显示了三个条目,即variable1variable2variable3,代表三种不同类型的条目。但是,在部署时,应用程序必须允许接收三个以上的条目,并且并非所有条目类型都需要出现在请求中。

covars = {
            'variable1':  # type: integer
                {
                    'guess': 1,
                    'min': 0,
                    'max': 2,
                },
            'variable2':  # type: continuous
                {
                    'guess': 12.2,
                    'min': -3.4,
                    'max': 30.8,
                },
            'variable3':  # type: categorical
                {
                    'guess': 'red',
                    'options': {'red', 'blue', 'green'},
                }
        }
Run Code Online (Sandbox Code Playgroud)

我已成功创建三种不同的条目类型作为三个单独的Pydantic模型

import pydantic
from typing import Set, Dict, Union


class IntVariable(pydantic.BaseModel):
    guess: int
    min: int
    max: int


class ContVariable(pydantic.BaseModel):
    guess: float
    min: float
    max: …
Run Code Online (Sandbox Code Playgroud)

python validation nested pydantic fastapi

6
推荐指数
1
解决办法
1万
查看次数

如何验证pydantic模型的多个领域

我想验证pydantic模型的三个模型字段。为此,我正在从 pydantic 导入 root_validator。低于错误。我在https://pydantic-docs.helpmanual.io/usage/validators/#root-validators 中找到了这个。任何人都可以帮助我。找出下面的错误。from pydantic import BaseModel, ValidationError, root_validator Traceback (最近一次调用): File "", line 1, in ImportError: cannot import name 'root_validator' from 'pydantic' (C:\Users\Lenovo\AppData\Local\Programs\ Python\Python38-32\lib\site-packages\pydantic__init__.py)

我试过

@validator
def validate_all(cls,v,values,**kwargs):
Run Code Online (Sandbox Code Playgroud)

我从一些常见的字段父模型继承了我的 pydantic 模型。仅显示父类字段的值,但不显示我的子类字段。例如

class Parent(BaseModel):
    name: str
    comments: str
class Customer(Parent):
    address: str
    phone: str

    @validator
    def validate_all(cls,v,values, **kwargs):
         #here values showing only (name and comment) but not address and phone.
Run Code Online (Sandbox Code Playgroud)

python validation pydantic

5
推荐指数
4
解决办法
5768
查看次数

标签 统计

python ×6

fastapi ×3

pydantic ×3

validation ×2

enums ×1

list ×1

nested ×1

openapi ×1

swagger ×1