如何在python中使用.env

问题描述 投票:0回答:1

我一直在尝试使用 .env 来保存我的关键 API 密钥。 访问 .env 时,我的代码失败,但使用 direct 则成功。 我想在我的代码中使用 .env 。 我的语法有什么问题???请建议工作模型。 我已经尝试了好几个星期了。 使用 .env 时收到的错误是: AttributeError: 'str' object has no attribute 'items'

**#My .env contains:**
headers={
'x-api-key':"sLEW68I3862.......75NKanjI"
}  


**#My Python script is:**
import requests
from dotenv import load_dotenv, dotenv_values 
import os

load_dotenv()

url="https://yfapi.net/v6/finance/quote"

**# Script fails when I retrieve the header/API this way**
# headers = os.getenv('headers')
# print(f'headers is: {headers}')

**# Script works when using this:** API not complete for security reasons
headers={
'x-api-key': "sLEW68I38624..........75NKanjI"
}
print(f'headers is: {headers}')

ticker_List = ("AAPL", "AMZN", "F", "T")

for ticker in ticker_List:

    querystring = {"symbols": ticker}

    response = requests.request("GET", url=url, headers=headers, params=querystring)

    print(response.text)
    print("________________")
    print()
python operating-system .env
1个回答
0
投票

两个问题。

第一:

**#My .env contains:**
headers={
'x-api-key':"sLEW68I3862.......75NKanjI"
}  

.env 文件不应该是这样的。他们应该是这样的:

MYAPP_API_KEY="sLEW68I3862.......75NKanjI"
MYAPP_USER="myuser"
MYAPP_PASSWORD="mypassword"

...等等。详细信息是因为 env 文件或多或少应该是有效可执行的 shell 脚本(在类似 Linux 的平台上),这就是在 shell 中声明环境变量的方式。全部大写是首选样式,但技术上并不重要。

第二:

os.getenv
不会返回这样的字典。给定环境变量名称,它返回值或 None。您可以在示例中像这样使用它(使用以我上面向您展示的方式编写的 env 文件):

from dotenv import load_dotenv, dotenv_values 
import os

load_dotenv()

url = "https://yfapi.net/v6/finance/quote"

API_KEY = os.getenv("MYAPP_API_KEY")

if not API_KEY:
    raise SystemExit("MYAPP_API_KEY not provided, exiting!")


headers = {'x-api-key': API_KEY}

print(f'headers is: {headers}')
© www.soinside.com 2019 - 2024. All rights reserved.