Pydantic:env_nested_delimiter 用于嵌套列表

Pydantic: env_nested_delimiter for a nested list

Pydantic 在版本 1.9-ish env_nested_delimiter 中引入,一种以方便的方式解析环境变量的机制。

我在设置中有这个模块:

from pydantic import BaseModel, BaseSettings


class SubModel(BaseModel):
    v1: str
    v2: bytes
    v3: int


class Settings(BaseSettings):
    v0: str
    sub_models: [SubModel]

    class Config:
        env_nested_delimiter = '__'


print(Settings().dict())

有没有办法在带有分隔符的 .env 文件中定义我的 sub_modelsSubModel 个实例中的 list)的元素?我已经试过了:

SUB_MODELS__0__SUB_MODEL__V2=00
SUB_MODELS__0__SUB_MODEL__V3=01
SUB_MODELS__0__SUB_MODEL__DEEP__V4=01

SUB_MODELS__1__SUB_MODEL__V2=nested-10
SUB_MODELS__1__SUB_MODEL__V3=11
SUB_MODELS__1__SUB_MODEL__DEEP__V4=12

但是没有用。我不确定当前版本的 pydantic 是否可行。也许定界符只限于 dict-like 数据结构。

调查source code,好像不太可能。至少在版本 1.9.0.