使用ClinicalTrials V2 API替换旧接口后查询无结果的技术求助
ClinicalTrials V2 API调用返回0结果的问题修复
问题原因分析
你的代码存在两个核心问题导致返回0条结果:
- 变量名不匹配:函数定义接收的参数是
keyword,但请求参数里写的是未定义的palabra_clave,导致搜索关键词没有被正确传递,相当于空搜索。 - API参数不兼容:V2 API与旧版V1的参数规则完全不同,旧版的
expr、min_rnk、max_rnk参数已不再适用。
修复后的代码
import requests import pandas as pd def download(keyword): base_url = "https://clinicaltrials.gov/api/v2/studies" params = { "query": keyword, # V2 API用query参数传递搜索关键词 "pageSize": 40 # 用pageSize指定每页返回的研究数量,替代旧版的max_rnk } response = requests.get(base_url, params=params) if response.status_code == 200: return response.json() else: print(f"请求失败,状态码:{response.status_code}") return None result = download("diabetes") print(result)
关键参数说明
query:V2 API中用于指定搜索关键词的参数,替代旧版的expr。pageSize:控制每页返回的研究条目数量,最大值为100,替代旧版的max_rnk。- 若需要分页获取更多结果,需使用
pageToken参数(从当前响应的nextPageToken字段获取),替代旧版的min_rnk。
内容的提问来源于stack exchange,提问作者torakxkz
相关产品推荐
相关产品推荐

