Python调用Hypixel API遇FileNotFoundError:找不到API_KEY.json文件
解决Python读取API_KEY.json时的FileNotFoundError问题
我编写了一段用于获取Hypixel API信息的Python代码,基础功能完成后运行时提示找不到指定文件,相关信息如下:
代码
#Imports import requests import json from pprint import pprint #Functions def get_info(call): r = requests.get(call) return r.json() #Variables API_FILE = open("API_KEY.json","r") API_KEY = json.loads(API_FILE.read())["API_KEY"] #Code print(API_KEY)
API_KEY.json文件内容
{ "API_KEY": "xxx-xxx-xx-xx-xx-x-xx" }
错误信息
Traceback (most recent call last): File "d:\\Python\\Microsoft VS Code\\Codes\\Projects\\MineCraft\\skyblock_utils.py", line 12, in <module> API_FILE = open("API_KEY.json","r") FileNotFoundError: [Errno 2] No such file or directory: 'API_KEY.json'
问题原因
- 相对路径匹配错误:使用相对路径时,Python会在当前运行脚本的工作目录查找文件,而非脚本所在目录。如果VS Code的工作目录不是脚本所在的
d:\\Python\\Microsoft VS Code\\Codes\\Projects\\MineCraft\\,就会找不到文件。 - 文件名或位置错误:JSON文件可能没和脚本放在同一文件夹,或者文件名拼写错误(比如多了空格、后缀被隐藏成
API_KEY.json.txt)。
解决方案
1. 使用绝对路径(推荐用动态拼接避免硬编码)
通过os模块获取脚本所在目录,自动拼接JSON文件路径:
import os import requests import json from pprint import pprint def get_info(call): r = requests.get(call) return r.json() # 获取脚本所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接JSON文件路径 api_file_path = os.path.join(script_dir, "API_KEY.json") API_FILE = open(api_file_path, "r") API_KEY = json.loads(API_FILE.read())["API_KEY"] print(API_KEY)
也可以直接写死绝对路径:
API_FILE = open("d:\\Python\\Microsoft VS Code\\Codes\\Projects\\MineCraft\\API_KEY.json","r")
2. 修正VS Code工作目录
- 打开脚本所在的
MineCraft文件夹作为VS Code工作区 - 或在运行配置中设置
cwd为脚本所在目录
3. 检查文件状态
- 确认
API_KEY.json和skyblock_utils.py在同一文件夹内 - 右键查看JSON文件属性,确保文件名正确,没有隐藏的后缀(比如
.txt)
内容的提问来源于stack exchange,提问作者NindeBonic
相关产品推荐
相关产品推荐

