Как пропустить действие не используя try except?

Как мне избежать ошибку и прогнать следующее значение в цикле? Когда в img_list нет файла срабатывает try except и переходит к следующему действию, заполняется text, но так как у меня нечего вкладывать в параметр photo выскакивает ошибка, если в параметре photo нет файлов ,мне как то нужно пропустить действие с url

    for pi in img_list:
           
        try:
            url = 'https://api.vk.com/method/photos.getWallUploadServer?group_id=%d&v=5.131&access_token=%s' % (
                    group_id, vk_key)   
            resp = requests.get(url).json()['response']
            upload_url = resp['upload_url']
            files = {'file1': open(pi, 'rb')}    
        except Exception:                 
            print(f"Что пошло не так с постом id {post_id}")
    
    url = 'https://api.vk.com/method/wall.post?owner_id=%s&from_group=1&message=%s&attachments=%s&v=5.131&access_token=%s' % \
                  (-group_id, text, photo, vk_key)
     
    resp = requests.get(url).json()
    print(resp)

Ответы (1 шт):

Автор решения: Roman-Stop RU aggression in UA

Перед циклом установите переменную в None, а после цикла проверяйте удалось ли в цикле ее значение установить:

photo = None
for pi in img_list:
       
    try:
        url = 'https://api.vk.com/method/photos.getWallUploadServer?group_id=%d&v=5.131&access_token=%s' % (
                group_id, vk_key)   
        resp = requests.get(url).json()['response']
        upload_url = resp['upload_url']
        files = {'file1': open(pi, 'rb')}    
        photo = ...
    except Exception:
        print(f"Что пошло не так с постом id {post_id}")

if photo: 
    url = 'https://api.vk.com/method/wall.post?owner_id=%s&from_group=1&message=%s&attachments=%s&v=5.131&access_token=%s' % \
              (-group_id, text, photo, vk_key)
 
    resp = requests.get(url).json()
    print(resp)
→ Ссылка