You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Nutritionix API从cfg文件取密钥为何出现401 Unauthorized错误?

解决Nutritionix API 401错误:从配置文件读取密钥失败的问题

可能的原因及解决方案

1. 配置文件格式存在多余字符

检查你的secrets.cfg文件,确保键值对没有多余空格、引号或换行符,正确格式应为:

[nutritionix]
API_ID=你的真实App ID
API_KEY=你的真实App密钥

注意:等号前后不要加空格,不要给ID/密钥添加引号,否则读取的字符串会包含这些无效字符,导致API验证失败。

2. 读取后去除字符串空白字符

即使打印时看起来正常,读取的字符串可能包含隐藏的换行符、空格(比如配置文件末尾的换行)。修改代码,对读取的密钥调用strip()方法:

x_app_id = config['nutritionix']['API_ID'].strip()
x_app_key = config['nutritionix']['API_KEY'].strip()

该方法会去除字符串首尾的空格、换行符、制表符等空白字符,确保传递给API的是纯净的密钥内容。

3. 验证读取字符串的真实内容

用repr()替代普通print()查看字符串的真实形态,确认是否存在隐藏字符:

print(repr(x_app_id))
print(repr(x_app_key))

如果输出包含\n、空格或引号,说明读取的内容存在问题,需要修正配置文件或进一步处理字符串。

4. 检查配置文件编码

确保secrets.cfg采用UTF-8无BOM编码格式。如果是带BOM的UTF-8,configparser读取时可能会在字符串开头加入隐藏的BOM字符,导致API验证失败。可以用记事本或VS Code重新保存文件,选择UTF-8无BOM编码。

内容的提问来源于stack exchange,提问作者Subhendu Dash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:52:42