2013-12-09 66 views
2

在我的管理页面中,我有一个用户名和ID列表。我正在尝试构建一本字典,以便稍后使用它来自动执行一些作业。 ,我已经建立的代码是:Python:如何建立一个包含多个字串的字典

def nameID_tag(src): 
    nameID = {} 
    try: 
     id = src.split('<option value="')[1].split('" >')[0] 
     names = src.split(id+'\" >')[1].split('</option>')[0] 
     nameID[names] = id 
    except: 
     print "Could not retrieve data." 
    return nameID 

的HTML代码:

<option value="1" >admin</option> 
<option value="2" >viktor</option> 
<option value="3" >ana</option> 

然后我把它叫做:

s=br.open(url).read() 
nameID_tag(s) 

其工作罚款1个用户,但不要”不知道如何获得所有的用户ID和建立字典。

+0

's'的内容是什么? – jonrsharpe

+0

s - 是我阅读的用于解析的一个html页面(带有user + id的管理页面) – MikeT

+0

我想我的意思是“你可以发布字符串's'的内容,以便我可以看到它的结构如何”,但是你有回答已经 – jonrsharpe

回答

2

现在,我用正则表达式很糟糕。所以可能有更好的方法来做到这一点。但这似乎起作用

import re 

IDs = re.findall('(?<=<option value=")\w+', html) 
names = re.findall('(?<=>)\w+(?=</option>)', html) 
nameID = dict(zip(IDs,names)) 
+0

哇,作品完美无瑕。谢谢 – MikeT

相关问题