pybliometrics执行ScopusSearch返回Error translating query报错求助
报错核心原因
- 检索语句语法不符合Scopus高级检索规则:你代码中
LIMIT-TO(PUBYEAR , 2018)的逗号后存在多余空格,Scopus API无法解析该格式,直接触发查询翻译错误。 - 附加代码问题:
s = ScopusSearch(...)后的两行代码存在多余缩进,不符合Python语法规范,即使查询正常也会触发缩进报错。
解决方案
- 修正检索语句语法,删除
LIMIT-TO参数中逗号后的空格,也可以直接用更简洁的年份筛选写法,参考如下:
from pybliometrics.scopus import ScopusSearch # 修正后的检索语句,两种写法均可 # 写法1:保留LIMIT-TO语法 scopus_advanced_search = "TITLE-ABS-KEY(capacitance) AND LIMIT-TO(PUBYEAR, 2018)" # 写法2:用等于号简化写法 # scopus_advanced_search = "TITLE-ABS-KEY(capacitance) AND PUBYEAR = 2018" s = ScopusSearch(scopus_advanced_search, subscriber=False) # 修正缩进错误 dois = [document.doi for document in s.results] print(dois)
- 若修正语法后仍报错,需确认非订阅用户权限限制:Scopus公开API仅支持非订阅用户检索最近5年的公开文献,2018年超出当前(2024年)可检索范围时,可调整检索年份为近5年,或确认所在机构有Scopus订阅权限后将
subscriber参数改为True。 - 若问题仍存在,升级pybliometrics到最新版本适配最新Scopus API规则:
pip install --upgrade pybliometrics
内容的提问来源于stack exchange,提问作者Loknath Basak
相关产品推荐
相关产品推荐

