python - 使用 ConfigParser 读取 API 密钥
问题描述
我正在尝试使用 ConfigParser 读取 API 密钥,但我得到了回溯:
NoSectionError Traceback (most recent call last)
<ipython-input-26-c861940d7d10> in <module>
5 configFilePath = r'c:\twitter.cfg'
6 config.read(configFilePath)
----> 7 APP_KEY = config.get('credentials','app_key')
8 APP_SECRET = config['credentials']['app_secret']
9 twitter = Twython(APP_KEY, APP_SECRET, oauth_version=2)
~\Anaconda3\lib\configparser.py in get(self, section, option, raw, vars, fallback)
778 """
779 try:
--> 780 d = self._unify_values(section, vars)
781 except NoSectionError:
782 if fallback is _UNSET:
~\Anaconda3\lib\configparser.py in _unify_values(self, section, vars)
1144 except KeyError:
1145 if section != self.default_section:
-> 1146 raise NoSectionError(section) from None
1147 # Update with the entry specific variables
1148 vardict = {}
NoSectionError: No section: 'credentials'
我的代码如下:
config = ConfigParser()
configFilePath = r'c:\twitter.cfg'
config.read(configFilePath)
APP_KEY = config.get('credentials','app_key')
APP_SECRET = config['credentials']['app_secret']
我的 twitter.cfg 文件:
[credentials]
app_key = aaaaaaaaaaaaaa
app_secret = aaaaaaaaaaaaaa
可能是什么问题?
解决方案
来自文档
如果不存在任何命名文件,则 ConfigParser 实例将包含一个空数据集
让你的路径和文件存在试试这个:
config = ConfigParser()
configFilePath = r'c:\twitter.cfg'
data=config.read(configFilePath)
if len(data) == 0:
raise ValueError("Failed to open/find config file")
APP_KEY = config.get('credentials','app_key')
APP_SECRET = config['credentials']['app_secret']
推荐阅读
- javascript - 如何在角度 12 中实现 d3 js 不相交力图
- javascript - 茉莉花测试 - 间谍定义错误
- java - 没有处理器声称这些注释中的任何一个
- angular - Promise 中的 Angular 单元测试 catchError
- fullcalendar - 在 FullCalendar 的月/年元素上注入日期选择器
- html - 编写代码以通过 css 和 html 创建带有箭头的表格,如下所示?
- intellij-idea - intellij/android studio idea 显示代码语句的预览气球
- python - 有没有办法让 for 循环将类型从 list 更改为 str?
- swift - 从 KotlinMultiPlatform (KMM) 中的共享类中读取字符数组
- keycloak - Keycloak:Liquibase 正在尝试多次执行变更集,即使它没有更改