1
我正在開發一個項目,該項目需要我使用Excel
電子表格的輸入和結果的打印計數來搜索pubmed
。我一直在使用xlrd
和entrez
來完成這項工作。這是我嘗試過的。XLRD/Entrez:搜索Pubmed並提取計數
我需要使用的作者,他/她的醫療學校,一系列的歲月,和他/她的導師的名字,這些都是在
Excel
電子表格的名稱通過pubmed
進行搜索。我已經使用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 = "[email protected]" 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']
的問題是,我需要在學生姓名列表(「med_name」)的下一個學生的名字來代替學生的名字(「詹妮弗藍籌」),該醫學院與下一個學校,當前指導者的名字與列表中下一個指導者的名字。
我想說出我的電子郵件pubmed
後,我應該寫一個for循環,但我不知道如何代碼的兩個塊連接在一起。有誰知道連接兩個代碼塊的有效方法,或者知道如何以比我嘗試的更有效的方式來做到這一點? 謝謝!
問題仍然存在? –
@MaximilianPeters我有一些後續問題關於這一個,我發佈到另一個線程:http://stackoverflow.com/questions/40161460/searching-on-pubmed-using-biopython –