当前位置: 代码迷 >> python >> Python和多维字典
  详细解决方案

Python和多维字典

热度:26   发布时间:2023-06-19 09:20:24.0

我正在尝试使用硒抓取一个网站,并且在大多数情况下都可以。 我现在遇到了一个问题...我正在刮擦赛马网站,并希望将我的结果存储在字典中以备后用。 我想要这样的东西...

print race ['WH'] [venue] [time],它将返回一个链接到该特定比赛时间的网址。

我已经刮擦了场地,时间和网址,可以按顺序打印它们,等等。这是我到目前为止的内容

    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']

基本上,脚本会遍历标签,如果找到带有粗体类的元素,它将知道其位置。 然后尝试在每个场地下找到相应的比赛时间(确实如此)。 但是我一生无法将其设置为race ['WH'] [venue] [text]之类的格式,我希望能够调用它来查找特定种族的网址。 任何帮助,将不胜感激。

如果您知道访问模式将使用特定的键序列(例如场地->时间,那么您就不需要做时间->场地),那么简单的答案就是在命令中包含命令。

简化示例:

data = dict()
data['venue1'] = dict()
data['venue1']['time1'] = 'something'
print data

换句话说:没有多维字典之类的东西。 但是,您可以嵌套字典,并且只要您不必更改用于访问字典中条目的键,这就能很好地工作。 如果需要在不同情况下使用不同的键(更像是数据库查询),则将使用非常不同的方法。