НЕ скачивается фото из респонса

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]
→ Ссылка