【发布时间】:2019-12-09 06:38:12
【问题描述】:
我正在尝试使用 Pubmed ID(我在名为“ids”的列表中)提取存放在 Pubmed 中的一些文章的标题。大约有 65 万个 Pubmed ID。该代码似乎工作正常并且不会引发任何错误。但是代码只为一小部分而不是全部提取图块。
以下是代码:
Entrez.email = "xyz@enginebio.com"
for i in range(0,len(ids),10000):
if i%10000 == 0: # for me to track the progress of the script
print (i)
idlist=ids[i:i+10000]
handle = Entrez.efetch(db="pubmed", id=idlist, retmode="xml")
try:
record = Entrez.read(handle)
except:
continue
title={}
for j in range(len(record["PubmedArticle"])):
pmid=record["PubmedArticle"][j]['MedlineCitation']['PMID'][:]
if "Abstract" in record["PubmedArticle"][j]['MedlineCitation']['Article'].keys():
title[pmid]=record["PubmedArticle"][j]['MedlineCitation']['Article']['ArticleTitle'].encode('ascii', 'ignore').decode('ascii')
# save article titles
subfile='article_titles_'+str(i)+'.txt'
ar = pd.DataFrame.from_dict(title, orient="index")
ar.to_csv(subfile,sep="\t",header=None)
任何建议都会很有用。谢谢
【问题讨论】:
-
如果返回的句柄为空,
except: continue可能会隐藏一些错误。
标签: biopython