Этот сниппет кода основан на ответе к вопросу о загрузке файлов через Requests на сайте StackOverflow.
import requests
with open('image.jpg', 'rb') as file:
url = '...'
files = {
'media': file, # Вместо ключа "media" скорее всего нужно подставить другое название ключа. Какое конкретно см. в доке API ВК.
}
response = requests.post(url, files=files)
response.raise_for_status()
Контекстный менеджер with
здесь используется для того, чтобы явно закрыть файл после его использования. Is explicitly closing files important?
Вызов raise_for_status
нужен чтобы сообщить о возможных ошибках по результатам запроса к API.