Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和多维字典_Python_Selenium_Dictionary_Screen Scraping - Fatal编程技术网

Python和多维字典

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

我正在尝试使用selenium来创建一个网站,大部分情况下,它运行正常。我现在遇到了一个问题。。。我正在抓取一个赛马网站,想把我的结果储存在字典里,以便以后使用。我想要像这样的东西

打印比赛['WH'][Visite][time],它将返回一个链接到特定比赛时间的url

我有场地,时间和网址的被刮,并可以打印顺序等他们这里是我到目前为止

    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

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

您是一个救生员!这个解决方案很简单,就在我眼皮底下,只需要有人说出来!工作起来很有魅力。谢谢