小编avn*_*v99的帖子

使用lookahead,如何确保至少包含4个字母数字字符+下划线

我试图确保输入中至少包含 4 个字母数字字符,并且也允许使用下划线。

正则表达式教程有点超出我的理解,因为它讨论了断言以及匹配时的成功/失败。

^\w*(?=[a-zA-Z0-9]{4})$
Run Code Online (Sandbox Code Playgroud)

我的理解:

\w--> 字母数字+下划线

*--> 匹配前一个标记零次到无限次(所以,这意味着它可以是任何字母数字/下划线字符,对吗?)

(?=[a-zA-Z0-9]{4})--> 向前查看前面的字符,如果它们至少包含 4 个字母数字字符,那么我就很好。

显然我错了,因为 regex101 没有向我显示任何匹配项。

javascript regex

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

我怎样才能在 pydantic 模型中做出关键的动态

我有一个 API 入口点:

@app.get('/dealers_get_users/', response_model = schemas.SellSideUserId, status_code=200)
def getdata(db: database.SessionLocal = _Depends(database.get_db)):
    result = {}
    i =  db.query(models.sellSideUser).all()
    for dealer_users in i:
        result[str(dealer_users.user_id)] = {
            'user_name'  :     dealer_users.user_name,
            'user_pass'  :     dealer_users.user_pass,
            }
    m = schemas.SellSideUserId(user_id=result)
    return m
Run Code Online (Sandbox Code Playgroud)

从数据库传入的数据只有 3 个字段:user_id、user_name、user_pass

当我调用 api 时,我得到这个:

{
"user_id": {
            "1": {
                  "user_name": "testname",
                  "user_pass": "testpass"
                  }
            }
}
Run Code Online (Sandbox Code Playgroud)

好吧,酷 - 我得到了我的数据。但我仍在尝试了解这些模型是如何工作的,并且没有真正掌握如何移入或移出嵌套字典。

例如,我希望它看起来像这样:

{
            "1": {
                  "user_name": "testname",
                  "user_pass": "testpass"
                  }
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将“结果”变量传递到此类中 - 无论我做什么,都会遇到错误。

我的模型:

class SellSideUserId(_BaseModel):
    user_id     : dict
    class Config: …
Run Code Online (Sandbox Code Playgroud)

python pydantic fastapi

4
推荐指数
1
解决办法
7566
查看次数

标签 统计

fastapi ×1

javascript ×1

pydantic ×1

python ×1

regex ×1