2017-11-16 2 views
0

요청을 사용 중이며 예외가 발생하는 경우가 많습니다 (json.decoder.JSONDecodeError : 기대 값 : 1 행 1 (char 0)). 성공할 때까지 반복하고 예외 유형을 차별하지 않으려합니다 (아직). 내 코드가 처음 성공하거나 루프를 무기한 유지합니다.try-except 루프가 처음 성공하거나 영원히 실행됩니다.

def loop_json(self,url): 
    result = None 
    print(url) 
    while result == None: 
     try: 
      print('trying') 
      response = requests.get(url).json() 
      result = 1 
     except: 
      time.sleep(3) 
      pass 
    return response 
+2

(400)는 "잘못된 요청"입니다 일단 아무것도 변경하지 않으며, 루프는 여전히 루프를 유지합니다. 즉, 요청이 어떤 식 으로든 잘못되었다는 의미입니다. 따라서 요청을받은 서버를 몇 번이나 타격해도 아무런 문제가 없습니다. – roganjosh

+0

@roganjosh가 말했듯이, 여기에 더 많은 설명이 있습니다 https://stackoverflow.com/questions/19671317/400-bad-request-http-error-code-meaning – Nabin

+0

코드가 실수로 반복되고 있습니다. 나는 그냥 loop_json을 클래스의 일부가 아닌 함수로 호출하고있다. 그래서 나는 스스로를 제거했다. '에서 [61] loop_json (0, "자위대") ' – Martin

답변

0

정말 긴 코멘트 스레드가되지 않도록 여기에 작성합니다. 실제로 반환되는 오류는 400입니다. 내가 얻은 응답으로 imgur url을 게시했습니다. 이것은 때때로 발생합니다 - 나는 4 번 실행했습니다. 처음 3 번은 200 번 응답이었고 모든 것이 잘되었습니다. 4 번은 400 번 응답이 있습니다. 나는 400

https://imgur.com/a/xChgC

관련 문제