2

示例-我有以下字典...

URLDict = {'OTX2':'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=OTX2&action=view_all',
'RAB3GAP':'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=RAB3GAP1&action=view_all',
'SOX2':'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=SOX2&action=view_all',
'STRA6':'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=STRA6&action=view_all',
'MLYCD':'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=MLYCD&action=view_all'}

我想使用 urllib 在 for 循环中调用每个 url,怎么做?

我已经使用像这样的列表格式的网址成功地做到了这一点......

OTX2 = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=OTX2&action=view_all'
RAB3GAP = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=RAB3GAP1&action=view_all'
SOX2 = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=SOX2&action=view_all'
STRA6 = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=STRA6&action=view_all'
MLYCD = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=MLYCD&action=view_all'

URLList = [OTX2,RAB3GAP,SOX2,STRA6,PAX6,MLYCD]

for URL in URLList:                                                        
    sourcepage = urllib.urlopen(URL)                                     
    sourcetext = sourcepage.read() 

但我也希望稍后在返回数据时能够打印密钥。使用列表格式,键将是一个变量,因此无法访问它进行打印,我只能打印该值。

谢谢你的帮助。

汤姆

4

3 回答 3

4

您是否尝试过(作为一个简单的示例):

for key, value in URLDict.iteritems():
    print key, value
于 2012-10-15T19:18:18.357 回答
4

看起来甚至不需要字典。

dbs = ['OTX2', 'RAB3GAP', 'SOX2', 'STRA6', 'PAX6', 'MLYCD']
urlbase = 'http://lsdb.hgu.mrc.ac.uk/variants.php?select_db=%s&action=view_all'

for db in dbs:
    sourcepage = urllib.urlopen(urlbase % db)
    sourcetext = sourcepage.read()
于 2012-10-15T19:20:27.197 回答
2

我会这样做:

for url_key in URLDict:
    URL = URLDict[url_key]

    sourcepage = urllib.urlopen(URL)
    sourcetext = sourcepage.read()

url 显然是URLDict[url_key],您可以保留keyname 中的值url_key。举个例子:

print url_key

在第一次迭代将打印OTX2.

于 2012-10-15T19:41:07.370 回答