НЕ скачивается фото из респонса
import time
import requests
from pprint import pprint
def get_photo():
vk_access_token = '958eb5d439726565e9333aa30e50e0f937ee432e927f0dbd541c541887d919a7c56f95c04217915c32008'
url1 = 'https://api.vk.com/method/photos.get'
params = {
'owner_id': 552934290,
'access_token': vk_access_token,
'v': 5.131,
'album_id': 'wall',
}
r = requests.get(url1, params=params)
# pprint(r.json()['response']['items'])
for i in r.json()['response']['items']:
# pprint(i['sizes'])
for k in i['sizes']:
if k['type'] == 'z':
pprint(k['url'])
file_url = k['url']
filename = file_url.split('/')
api = requests.get(file_url)
with open(filename, 'wb') as f:
f.write(api.content)
get_photo()
Пытаюсь скачать фото из респонс, но вывод вот такой
Traceback (most recent call last):
File "C:\Users\Alexey Karneenko\Netology\сourse_Work.py", line 30, in <module>
get_photo()
File "C:\Users\Alexey Karneenko\Netology\сourse_Work.py", line 28, in get_photo
with open(filename, 'wb') as f:
TypeError: expected str, bytes or os.PathLike object, not list
Не могу понять в чем конкретно ошибка, ожидается строка, но там ссылка и она вроде как строка. Помогите советом
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
filename = file_url.split('/')
...
with open(filename, 'wb') as f
После использования split у вас в filename оказывается список. А список нельзя использовать в качестве имени файла, о чём и говорит ошибка:
TypeError: expected str, bytes or os.PathLike object, not list
Возможно, вы имели в виду что-то такое (взять строку после последнего символа / в качестве имени файла):
filename = file_url.split('/')[-1]