无法使用 configparser 读取 .ini 文件

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

我最近开始学习 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
python python-3.x ini
2个回答
0
投票

对我来说,当我使用

r"<filePath>"

更改文件路径时,它就起作用了
config = configparser.RawConfigParser()
config.read(r"..\Configurations\config.ini")

我希望这能起作用。


0
投票

您必须提供 .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())`
© www.soinside.com 2019 - 2024. All rights reserved.