如何修复调用Mouser API并在Python控制台输出响应的问题
修复Mouser API请求代码的问题
你的代码无法正常运行主要有几个核心问题,以下是问题分析和修复方案:
问题点说明
- 请求方法错误:Mouser的关键词搜索API要求使用
POST方法,而非代码中的GET,官方接口规范明确该接口需通过请求体提交参数。 - 参数传递方式错误:搜索关键词需要放在JSON格式的请求体中,不能作为URL查询参数传递。
- API版本过时:
v1版本的API已被官方弃用,建议使用最新的v2版本保证兼容性。 - 错误处理不足:仅打印"请求失败"无法定位具体问题,需要输出状态码、响应内容等信息排查错误。
修复后的代码
import requests def mouser_api_request(keyword): mouser_api_key = 'MY_API_KEY' # 替换为你的实际API密钥 version = 'v2' url = f'https://api.mouser.com/api/{version}/search/keyword' headers = { 'Content-Type': 'application/json', 'apiKey': mouser_api_key # API密钥放在请求头,符合官方规范 } # 构造API要求的标准请求体结构 payload = { "SearchByKeywordRequest": { "Keyword": keyword, "Records": 10, # 可选:设置返回的记录数量 "StartingRecord": 0, # 可选:设置起始记录位置 "SearchOptions": "", # 可选:如填写"ExactMatch"开启精确匹配 "SearchWithYourSignUpLanguage": "true" } } try: response = requests.post(url, headers=headers, json=payload) response.raise_for_status() # 自动触发HTTP错误对应的异常 data = response.json() print(data) except requests.exceptions.RequestException as e: print(f'Mouser API请求失败: {str(e)}') if response.content: print(f'响应详情: {response.text}') keyword_to_search = input('输入搜索关键词: ') mouser_api_request(keyword_to_search)
关键修改说明
- 切换为
POST请求,通过json参数传递符合API规范的请求体 - 将API密钥移至请求头的
apiKey字段,避免URL暴露密钥 - 升级到
v2版本API,适配官方最新接口 - 增加
try-except块捕获所有请求异常,输出详细错误信息便于排查 - 按照Mouser API要求构造嵌套的
SearchByKeywordRequest请求体结构
内容的提问来源于stack exchange,提问作者nothin7
相关产品推荐
相关产品推荐

