[英]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.