我最近开始学习 python,我遇到了这个问题,使用 configparser 从 ini 文件读取密钥,它不断引发密钥错误。
我有两个文件:
天气.py
import configparser
def get_api_key():
config = configparser.ConfigParser()
config.read('config.ini')
return config['openweathermap']['api_key']
print(get_api_key())
和config.ini
[openweathermap]
api_key=e53647dc71abcf81c779b83f1a8807c1
两个文件都放在同一个文件夹中。
使用
print(get_api_key())
给了我这个错误:
Traceback (most recent call last):
File "...\weather.py", line 8, in <module>
print(get_api_key())
File "...\weather.py", line 6, in get_api_key
return config['openweathermap']['api_key']
File "C:\Users\username\AppData\Local\Programs\Python\Python310\lib\configparser.py", line 964, in __getitem__
raise KeyError(key)
KeyError: 'openweathermap'
是否可以获得一些帮助? 预先感谢。
编辑: “balderman”要求我显示这两个文件位于同一目录中,所以我
cd
进入该文件夹并使用ls
:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 13-Nov-21 22:31 __pycache__
-a---- 13-Nov-21 23:03 0 config.ini
-a---- 13-Nov-21 23:03 737 weather.py
对我来说,当我使用
r"<filePath>"
更改文件路径时,它就起作用了
config = configparser.RawConfigParser()
config.read(r"..\Configurations\config.ini")
我希望这能起作用。
您必须提供 .ini 文件的绝对路径。
import configparser
def get_api_key():
config = configparser.ConfigParser()
ini_file_path = os.path.join(os.path.dirname(__file__), 'config.ini')
config.read('config.ini')
return config['openweathermap']['api_key']
print(get_api_key())`