Python 无法捕获异常

Python 无法捕获异常,python,exception,Python,Exception,我有以下代码: def coming_episode ( show ): try: show = api.search ( show , 'en' ) [ 0 ] except: print "a" return announced = [ 'show title' ] for e in show [ len ( show ) -1 ]: if e.FirstAired != '' and

我有以下代码:

def coming_episode ( show ):
    try:
        show = api.search ( show , 'en' ) [ 0 ]
    except:
        print "a"
        return

    announced = [ 'show title' ]

    for e in show [ len ( show ) -1 ]:
            if e.FirstAired != '' and time.time () < time.mktime ( e.FirstAired.timetuple () ):
                    announced.append ( [ e.EpisodeName , e.id , time.mktime ( e.FirstAired.timetuple () ) ] )
    return announced
我做错了什么

提前感谢;)

我想你用过,所以我把我所有的信息都从

当你使用

for e in show [ len ( show ) -1 ]
你反复播放该剧一季的每一集

当一个节目有三个季节时,你会在第二个季节重复(
len(show)==3
3-1==2

如果一个节目只有一个季节,那么您尝试迭代的季节是
len(show)==1
=>
1-1=0
=>
0
,但是没有季节
0
,只有一个季节
1
,因此引发错误。(我不确定,但如果找不到某个节目,可能仍然会有一个
show
实例,其中包含一个空的
seasure
实例)

您可能希望使用:

for s in show:      # for each season in show
    for e in s:     # for each episode in season
        if e.FirstAired != '' and time.time (...
我猜是你用的,所以我把我所有的信息都从

当你使用

for e in show [ len ( show ) -1 ]
你反复播放该剧一季的每一集

当一个节目有三个季节时,你会在第二个季节重复(
len(show)==3
3-1==2

如果一个节目只有一个季节,那么您尝试迭代的季节是
len(show)==1
=>
1-1=0
=>
0
,但是没有季节
0
,只有一个季节
1
,因此引发错误。(我不确定,但如果找不到某个节目,可能仍然会有一个
show
实例,其中包含一个空的
seasure
实例)

您可能希望使用:

for s in show:      # for each season in show
    for e in s:     # for each episode in season
        if e.FirstAired != '' and time.time (...

没关系。。。它突然起作用了。复制刚才在不同的机器上粘贴的代码,它的工作。奇怪的东西…

没关系。。。它突然起作用了。复制刚才在不同的机器上粘贴的代码,它的工作。奇怪的东西…

您的跟踪表明异常是在for循环上抛出的,而不是在
api.search上抛出的。您试图迭代什么?您使用的是pytvdbapi,对吗?是的,很抱歉没有指定……您的跟踪表明异常是在for循环上引发的,而不是在
api.search
上引发的。你想迭代什么?你使用的是pytvdbapi,对吗?是的,很抱歉没有指定那个…但是迭代从0开始,对吗?因此,如果api返回
show=['show1']
,您将通过调用show[0]获得“show1”。还是我误解了你?我只想看上一季的最后一集。是的,我想是的(我自己没有测试,我只是看了源代码)。
Show
类有一个名为
seasures
的成员,用于存储季节,它是一个
dict
,而不是一个列表。因此,如果您访问
show[i]
,您不会在索引
i
处获得季节,而是使用键
i
获取
seasures
-字典的值。但是迭代从0开始,对吗?因此,如果api返回
show=['show1']
,您将通过调用show[0]获得“show1”。还是我误解了你?我只想看上一季的最后一集。是的,我想是的(我自己没有测试,我只是看了源代码)。
Show
类有一个名为
seasures
的成员,用于存储季节,它是一个
dict
,而不是一个列表。因此,如果您访问
show[i]
,则不会在索引
i
中获取季节,而是使用键
i
获取
seasures
-字典的值。