使用Scopus API通过DOI获取作者信息为空的问题排查
解决Scopus API获取作者信息为空的问题
问题原因
你遇到的空值问题来自两个关键点:
- 视图范围限制:当前使用的
view='STANDARD'视图仅返回文献的基础元数据框架,不会填充具体的作者详情,这是Scopus API视图设计的默认规则。 - 检索方法不匹配:
scopus.search()是通用批量检索接口,单篇文献通过DOI获取详情应该使用专门的单文献查询方法,而非通用搜索接口。
修正方案
改用单文献DOI查询方法,并指定包含完整作者信息的视图,代码示例如下:
import pyscopus import json # 补充缺失的json模块导入 key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' doi = '10.1016/0270-0255(87)90003-0' scopus = pyscopus.Scopus(key) # 使用单文献DOI查询接口,指定COMPLETE视图获取完整元数据 doc = scopus.get_document_by_doi(doi, view='COMPLETE') response_json = json.loads(doc.to_json(orient="records")) # 正常获取作者信息 print(response_json[0]['authors'])
补充说明
- 视图选择:
view='COMPLETE'会返回包括作者姓名、所属机构、作者ID在内的完整元数据;若仅需基础作者信息,view='FULL'也可满足需求。 - 权限验证:如果更换视图后仍无数据,需确认你的API密钥所属机构是否开通了对应视图的访问权限,可联系机构管理员核实。
内容的提问来源于stack exchange,提问作者Dr. Drunkenstein
相关产品推荐
相关产品推荐

