2017-03-13 3 views
-2

URL을 검사하고 응답 코드를 가져 오는 스크립트를 만드는 동안이 오류가 발생했습니다.이 오류가 발생했습니다. Stack Overflow, Google 등을 광범위하게 검색했습니다.이 오류에 대한 모든 대답은이 상황과 관련이 없습니다. 이것은 동일한 상황에 처한 사용자에게 도움이 될 수 있습니다.TypeError : 목록 색인은 str이 아닌 정수 여야합니다. Python 오류

for dirs in dds_dirpath: 
     if responsecode(dds_host + dds_dirpath[dirs]) == "200" or responsecode(dds_host + dds_dirpath[dirs]) == "201" or responsecode(dds_host + dds_dirpath[dirs]) == "202" or responsecode(dds_host + dds_dirpath[dirs]) == "203" or responsecode(dds_host + dds_dirpath[dirs]) == "204" or responsecode(dds_host + dds_dirpath[dirs]) == "205" or responsecode(dds_host + dds_dirpath[dirs]) == "206" or responsecode(dds_host + dds_dirpath[dirs]) == "207" or responsecode(dds_host + dds_dirpath[dirs]) == "208" or responsecode(dds_host + dds_dirpath[dirs]) == "226" or responsecode(dds_host + dds_dirpath[dirs]) == "401": 
      print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dds_dirpath[dirs] 
     else: 
      print "[ FAILED ] ", dds_host + dds_dirpath[dirs] 

감사합니다. 모든 도움을 주셔서 감사합니다. 나는이 같은 상황에서 답이없는 질문을 발견 한이 문제를 고려하지 않습니다.

+0

오류는 자명하지만 ** dirs ** 변수는 ** str ** 형식 인 것 같습니다. 그냥 int로 캐스팅 해보세요. 또한 제목을 문자 그대로 검색하면 많은 질문과 답변을 얻을 수 있으며 원하는 내용을 찾을 수 있습니다. – umutto

+0

str() 또는 int()를 사용하여 두 가지 유형의 data.convert를 연결하려고합니다. type() 함수를 사용하여 유형을 확인할 수도 있습니다. – shadow0359

답변

0

문제를 해결하기 위해해야 ​​할 일은 dds_dirpath [dirs]를 단지 dir로 바꾸는 것입니다. DIRS 변수 inself이 dds_dirpath 반복하고 일부 URL (11)을 요청하는

for dirs in dds_dirpath: 
    if responsecode(dds_host + dirs) == "200" or responsecode(dds_host + dirs) == "201" or responsecode(dds_host + dirs) == "202" or responsecode(dds_host + dirs) == "203" or responsecode(dds_host + dirs) == "204" or responsecode(dds_host + dirs) == "205" or responsecode(dds_host + dirs) == "206" or responsecode(dds_host + dirs) == "207" or responsecode(dds_host + dirs) == "208" or responsecode(dds_host + dirs) == "226" or responsecode(dds_host + dirs) == "401": 
     print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dirs 
    else: 
     print "[ FAILED ] ", dds_host + dirs 

나는 사실을 무시할 수 목록에서 하지 인덱스를 가지고 있기 때문에 dds_dirpath는 [DIRS은] 어떤 이해가되지 않습니다 if 조건에서 시간 (!). 웹 사이트 관리자가 동일한 IP에서 매우 자주 요청을 좋아하지 않는다 아마 당신은 당신이 정말로 문자열로 응답 코드를받을 수 있나요이

for dirs in dds_dirpath: 
    if responsecode(dds_host + dirs) in ["200", "201", "202", "203", "204", "205", "206", "207", "208", "226", "401"]: 
     print "[ \033[1;32;40mOK\033[1;37;40m ] ", dds_host + dirs 
    else: 
     print "[ FAILED ] ", dds_host + dirs 

같은 것을해야

당신의 IP 금지 때문에 그것은 나쁘다 , int 아닌가요?

관련 문제