0

我是这个 python/biopyhton 的新手,所以我很难弄清楚为什么下面的代码,几乎直接从 Biopython Cookbook 中提取出来,没有达到我的预期。

我原以为解释器最终会显示两个包含相同数字的列表,但我得到的只是一个列表,然后是一条消息说TypeError: 'generator' object is not subscriptable

我猜 Medline.parse 步骤出了点问题,并且 efetch 的结果没有以允许后续交互提取 PMID 值的方式进行处理。或者,efetch 没有返回任何内容。

任何指向我做错了什么的指针?

谢谢

from Bio import Medline
from Bio import Entrez
Entrez.email = 'A.N.Other@example.com'

handle = Entrez.esearch(db="pubmed", term="biopython")
record = Entrez.read(handle)
print(record['IdList'])

items = record['IdList']
handle2 = Entrez.efetch(db="pubmed", id=items, rettype="medline", retmode="text")
records = Medline.parse(handle2)
for r in records:
    print(records['PMID'])
4

1 回答 1

1

您正在尝试打印records['PMID']哪个是generator。我认为您的意思是print(r['PMID'])在每次迭代的当前记录字典对象中打印“PMID”条目。文档中给出的示例证实了这一点Bio.Medline.parse()

于 2013-05-10T22:14:50.287 回答