簡體   English   中英

是否可以將 pydantic 字段的名稱作為字符串獲取?

[英]Is it possible to get name of pydantic field as string?

class Settings(BaseSettings):
    SITE_URL: str

CONFIG = Settings()

>>> CONFIG.SITE_URL

返回 str,這是意料之中的

是否有可能以某種方式訪問字段的虛線字符串表示形式?

CONFIG.SITE_URL.__some_magic_attr_ == 'CONFIG.SITE_URL'

一旦初始化,Pydantic model 的屬性就是為其定義的類型。 在這種情況下, SITE_URL只是一個字符串。 因此,沒有特殊的魔術方法,可以得到它的字段名。

不過,根據您的實際用例,model 的__fields__屬性可能有用。 它是將字段名稱映射到ModelField對象的字典。 例如

from pydantic import BaseSettings

class Settings(BaseSettings):
    SITE_URL: str

print(Settings.__fields__['SITE_URL'])

name='SITE_URL' type=str required=True

如果你有你的設置 object,你可以例如這樣做:

for name in CONFIG.__fields__.keys():
    print(f'{CONFIG.__class__.__name__}.{name}')

給你

Settings.SITE_URL
...

如果您想要存儲設置 object 的變量名稱,我假設您可以手動將其寫為字符串,即

for name in CONFIG.__fields__.keys():
    print(f'CONFIG.{name}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM