예외

2013-10-17 1 views
0
나는 다음과 같은 코드가

를 잡을 수 없습니다. 그러나, 나는 또한 "awdawd"같은 쇼를 멍청한 것으로 타이프 할 때 예외를 잡기를 원합니다. 예외

는 또한 except:except TVDBIndexError:을 시도했지만 모두는 여전히 나에게 다음과 같은 오류 제공 : 내가 잘못 여기서 뭐하는 거지

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "init.py", line 27, in <module> 
    series     = coming_episode (series) 
    File "init.py", line 19, in coming_episode 
    for e in show [ len (show) -1 ]: 
    File "/Users/Sites/Python/_envs/Series/lib/python2.7/site-packages/pytvdbapi/api.py", line 340, in __getitem__ 
    raise error.TVDBIndexError("Season {0} not found".format(item)) 
pytvdbapi.error.TVDBIndexError: (u'Season 0 not found',(), {}) 

를? 사전에

덕분에)

+2

추적은 예외가 for 루프에 던져지고, * api.search에는 표시되지 않는다는 것을 나타냅니다. 무엇을 반복하려고합니까? – goncalopp

+0

pytvdbapi를 사용 하시겠습니까? – sloth

+0

그래, 그걸 지정하지 않아서 미안해 ... – Diederik

답변

4

난 당신이 pytvdbapi를 사용하는 것 같아요, 그래서 here에서 내 모든 정보를했다. 당신이

for e in show [ len (show) -1 ] 

를 사용하는 경우

당신은 쇼의 단일 시즌 각각의 에피소드를 반복.

쇼에 3 계절이있는 경우 2 시즌 후에 (len(show) == 3, 3 - 1 == 2)를 반복합니다. 쇼는 정확히 하나 개의 절기가있는 경우

, 당신이 반복하려고 시즌 len(show) == 1 =>1 - 1 = 0 =>0입니다,하지만 시즌 0 만 시즌 1 때문에 오류가 발생가 없습니다. (확실치는 않지만 어쨌든 쇼가 발견되지 않으면 Show 인스턴스가 비어있는 Season 인스턴스가 있음). 그것은 갑자기 작동 ...

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

하지만 반복은 0시에 시작 되니? 그래서 API가'show = [ 'show1']'를 반환하면 show [0]을 호출하여 "show1"을 얻게됩니다. 아니면 내가 너를 오해하고 있니? 나는 지난 시즌의 마지막 에피소드 만 원한다. – Diederik

+0

네, 그렇게 생각합니다 (직접 테스트하지는 않았지만 소스 코드를 읽었습니다). 'Show' 클래스에는 계절이 저장되는'seasons'라는 멤버가 있습니다.이 멤버는리스트가 아니라'dict'입니다. 따라서'show [i]'에 접근하면 * index *'i'에서 시즌을 얻지 않고 * key *'i'를 갖는'seasons'- 사전의 값을 얻을 수 있습니다. – sloth

0

신경 쓰지 :

당신은 아마 사용하고 싶습니다. 복사 한 코드를 다른 컴퓨터에 붙여 넣으면 작동합니다. 이상한 것들 ...