0

我正在尝试将基因 ID 列表传递给 url。gl存储基因 ID 列表。我需要"?term="遍历列表中的元素并执行定义的函数。

import re
import urllib2

def sr():
    gl = [6323,6513]

    # need to pass the list gl here:
    s = urllib2.urlopen('http://www.ncbi.nlm.nih.gov/gene/?term=','r')

    h = s.read()
    s.close()
    acc = re.search('gi=(.+?)&amp',h)
    if acc:
            ac = acc.group(1)
            f = open("E:/t.txt", "w")
            f.write(ac);
            f.close()
4

1 回答 1

0

我不确定我了解您在寻找什么,但也许urllib.urlencode是您正在寻找的东西?urlencode将生成一个查询字符串。您可以将其与基本 URL 一起传递给urllib.urlopen.

我假设值term应该是逗号分隔的?

gl = [6323,6513]
params = urllib.urlencode({"term": ','.join(map(str, gl))})
s urllib.urlopen('http://www.ncbi.nlm.nih.gov/gene/', params)

正如 Peter Cock 在评论中提到的那样,您最好使用 NCBI 的官方 API Entrez(此处为指南)。Bio.Entrez提供了一个很好的界面。

于 2013-10-18T20:40:25.623 回答