簡體   English   中英

如何在 python 點環境文件中定義列表?

[英]How to define lists in python dot env file?

在 Fast API 文檔中,建議使用 .env 加載配置。 據我所知,只是它只支持字符串。

from fastapi import FastAPI
from pydantic import BaseSettings


class Settings(BaseSettings):
    api_tokens = []

    class Config:
        env_file = ".env"


settings = Settings()
app = FastAPI()

我通常每隔幾個月更改一次 API 令牌,方法是在列表中添加一個新令牌,一段時間后我刪除舊令牌。 這使用戶有足夠的時間升級到最新版本而不會受到任何干擾。 同時,兩個 API 令牌將在一段時間內有效。

但我無法在.env文件中定義列表。

API_TOKENS = abc123,abc321

我錯過了什么嗎?

更新:

其實是可以的。 下面的答案是正確的,但是我仍然不得不像這樣更改類型:

class Settings(BaseSettings):
    api_tokens: list

您可以使用 json 模塊將字符串變量轉換為 python 中的列表。

.env 文件

LIST_VAR='["Foo", "bar"]'

Python 代碼

import os
import json
from dotenv import load_dotenv
load_dotenv()
list_var = json.loads(os.environ['LIST_VAR'])

這應該工作,

API_TOKENS = ["abc123","abc321"]

暫無
暫無

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

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