/ / Продовжити Обробку запитів після відмови в python - python, for-loop, httpresponse

Продовжуйте обробку запитів після збою в python - python, for-loop, httpresponse

У мене є сценарій, який запускає та надсилає URL-адреси втекстовий файл через GET в API та зберігає відповідь на текстовий файл. Однак цикл for припиняється, якщо я отримую збій у першому розділі і не продовжую передавати інші. Як я можу все-таки схопити помилку і продовжувати роботу з іншими, не виходячи зі сценарію, перш ніж він закінчиться?

sys.stdout=open("mylog.txt","w")
for row in range(0, len(exampleData)):
url = exampleData[row][0]
print (url)
response = requests.get(url, auth=(user, pwd))
if response.status_code != 200:
print("Failure Message {}" .format(response.text))
work = "failed"
continue
data = json.loads(response.text)
print(data)
work = "succeeded"
sys.stdout.close()

Відповіді:

2 для відповіді № 1

Використовуйте продовження замість виходу ()


0 для відповіді № 2

Використовуйте a виняток щоб зловити невдачу і продовжувати далі.


0 для відповіді № 3

Тепер, коли ваше управління петлею виправлено, воно повиннопрацювати правильно. Він надрукує повідомлення про помилку щоразу, коли отримає відповідь про помилку (не 200). Якщо ви бачите лише одне повідомлення про помилку, ви отримуєте лише одну відповідь, яка не стосується 200, з іншого боку. Якщо це не так, як ви очікуєте, проблема знаходиться на стороні сервера. (Або у вмісті exampleData.)

Вам потрібно налагодити власну систему сервер-клієнт. Спростіть цю петлю, щоб єдине, що вона робить, - це друк діагностичної інформації про відповідь (наприклад, друк status_code), і дізнайтеся, що відбувається насправді.