【问题标题】:BioPython Pubmed Eutils url?BioPython Pubmed Eutils 网址?
【发布时间】:2013-05-03 17:07:30
【问题描述】:

我正在尝试针对 Pubmed 的 Eutils 服务运行一些查询。如果我在网站上运行它们,我会返回一定数量的记录,在本例中为 13126 (link to pubmed)。

不久前,我使用了一个 python 脚本来构建一个查询来做同样的事情,结果 url 返回相同数量的点击(link to Eutils 结果)。

当然,没有任何正式的编程背景,这有点笨拙,所以我正在尝试使用 Biopython 做同样的事情。我认为下面的代码应该做同样的事情,但它返回的点击次数更多,23303。

from Bio import Entrez
Entrez.email = "A.N.Other@example.com"
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
record = Entrez.read(handle)
print(record["Count"])

我很确定这只是 url 生成方式的一些微妙之处,但我无法弄清楚如何查看 Biopython 生成的 url。谁能指点一下?

谢谢!

编辑:

这与 url 的生成方式有关,因为我可以通过修改代码以在搜索词周围包含双引号来取回原始点击数,因此:

handle = Entrez.esearch(db='pubmed', term='"stem+cell"[ALL]', datetype='pdat', mindate='2012', maxdate='2012')

我仍然有兴趣了解 Biopython 正在生成什么 url,因为它可以帮助我弄清楚当我想要进行更复杂的搜索时如何构建搜索词。

【问题讨论】:

标签: python python-3.x biopython


【解决方案1】:
handle = Entrez.esearch(db="pubmed", term="stem+cell[All Fields]",datetype="pdat", mindate="2012", maxdate="2012")
print(handle.url)

【讨论】:

    【解决方案2】:

    您已经解决了这个问题(Entrez 喜欢明确的双引号循环组合搜索词),但目前生成的 URL 没有通过 API 公开。最简单的技巧是编辑Bio/Entrez/__init__.py 文件,在_open 函数中添加一个打印语句。

    更新:Biopython 的最新版本现在将 URL 保存为返回句柄的属性,即在此示例中尝试执行 print(handle.url)

    【讨论】:

      猜你喜欢
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多