我正在开展一个项目,该项目要求我pubmed
使用电子表格中的输入进行搜索Excel
并打印结果计数。我一直在使用xlrd
并entrez
完成这项工作。这是我尝试过的。
我需要
pubmed
使用作者姓名、他/她的医学院、年份范围和他/她的导师的名字进行搜索,这些都在Excel
电子表格中。我曾经xlrd
将包含所需信息的每一列转换为字符串列表。from xlrd import open_workbook book = xlrd.open_workbook("HEENT.xlsx").sheet_by_index(0) med_name = [] for row in sheet.col(2): med_name.append(row) med_school = [] for row in sheet.col(3): med_school.append(row) mentor = [] for row in sheet.col(9): mentor.append(row)
我已经设法使用 Entrez 打印了我的特定查询的计数。
from Bio import Entrez Entrez.email = "your@email.edu" handle = Entrez.egquery(term="Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) ") handle_1 = Entrez.egquery(term = "Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) AND Leoard P. Byk") handle_2 = Entrez.egquery(term = "Jennifer Runch AND ((2012[Date - Publication] : 2017[Date - Publication])) AND Southern Illinois University School of Medicine") record = Entrez.read(handle) record_1 = Entrez.read(handle_1) record_2 = Entrez.read(handle_2) pubmed_count = [] for row in record["eGQueryResult"]: if row["DbName"] == "pubmed": pubmed_count.append(row["Count"]) for row in record_1["eGQueryResult"]: if row["DbName"] == "pubmed": pubmed_count.append(row["Count"]) for row in record_2["eGQueryResult"]: if row["DbName"] == "pubmed": pubmed_count.append(row["Count"]) print(pubmed_count) >>>['3', '0', '0']
问题是我需要将学生姓名(“Jennifer Runch”)替换为学生姓名列表中的下一个学生姓名(“med_name”),将医学院替换为下一个学校,并将当前导师的姓名替换为下一个列表中的导师姓名。
我想我应该在将我的电子邮件声明为之后编写一个 for 循环pubmed
,但我不确定如何将这两个代码块链接在一起。有谁知道连接两个代码块的有效方法,或者知道如何以比我尝试过的更有效的方式来做到这一点?谢谢!