Python和多维字典
我正在尝试使用selenium来创建一个网站,大部分情况下,它运行正常。我现在遇到了一个问题。。。我正在抓取一个赛马网站,想把我的结果储存在字典里,以便以后使用。我想要像这样的东西 打印比赛['WH'][Visite][time],它将返回一个链接到特定比赛时间的url 我有场地,时间和网址的被刮,并可以打印顺序等他们这里是我到目前为止Python和多维字典,python,selenium,dictionary,screen-scraping,Python,Selenium,Dictionary,Screen Scraping,我正在尝试使用selenium来创建一个网站,大部分情况下,它运行正常。我现在遇到了一个问题。。。我正在抓取一个赛马网站,想把我的结果储存在字典里,以便以后使用。我想要像这样的东西 打印比赛['WH'][Visite][time],它将返回一个链接到特定比赛时间的url 我有场地,时间和网址的被刮,并可以打印顺序等他们这里是我到目前为止 for meet in meetings: if meet.get_attribute('class') == 'bold':
for meet in meetings:
if meet.get_attribute('class') == 'bold':
venue=meet.text
#race['WH'] = venue
#print '{id} - Venue: {venue}'.format(id=i, venue=venue)
race['wh'][venue] = ' '
else:
try:
anchor = meet.find_element_by_tag_name('a')
text = anchor.text
link = link = anchor.get_attribute('href')
#print 'link: {rid}, Time: {text}'.format(rid=r, link = anchor.get_attribute('href'), text = text)
tim[venue][text] = link
race['wh'] = tim
except NoSuchElementException:
pass # Are you worried if something is neither a title (bold) nor contains an anchor?
# race['WH'][venue] = list
print race['wh']['Ayr']
基本上,脚本会遍历标记,如果它找到一个类为bold的元素,它就知道它的位置。然后,它试图找到每个场地下的相应比赛时间。但我无法将其转换为race['WH'][地点][文本]等格式,我希望能够调用该格式来查找特定比赛的url。任何帮助都将不胜感激。如果您知道访问模式将使用特定的键序列,如地点->时间,那么您永远不需要执行时间->地点。简单的答案是在dicts中包含dicts 简化示例:
data = dict()
data['venue1'] = dict()
data['venue1']['time1'] = 'something'
print data
换句话说:没有多维字典这样的东西。但是,您可以嵌套字典,只要不必更改用于访问字典中条目的键,这种方法就可以很好地工作。如果您需要在不同的情况下使用不同的键(更像是数据库查询),您将使用非常不同的方法。您是一个救生员!这个解决方案很简单,就在我眼皮底下,只需要有人说出来!工作起来很有魅力。谢谢