Python Написать программу, которая будет циклом загружать картинки с любого сайта

У меня почему то выдает ошибку и не знаю вообще я правильно сделал, не могли бы вы подсказать

Traceback (most recent call last):
  File "c:\Users\Desktop\python\.py", line 21, in <module>
    print((photo.json()))
AttributeError: 'str' object has no attribute 'json'
import requests

photo = requests.get(url="https://jsonplaceholder.typicode.com/photos/1")

photos_list = photo.json()
for photo in photos_list:
    print((photo.json()))

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

Автор решения: CrazyElf

У вас приходит вот такой json:

{'albumId': 1,
 'id': 1,
 'title': 'accusamus beatae ad facilis cum similique qui sunt',
 'url': 'https://via.placeholder.com/600/92c952',
 'thumbnailUrl': 'https://via.placeholder.com/150/92c952'}

Это не список, это словарь. Когда вы итерируетесь по словарю, то просто перебираете его ключи, то есть строки. А у строк конечно нет метода .json(), поэтому photo.json() даёт ошибку.

Чтобы в дальнейшем разбираться больше во всём самому, а не спрашивать по каждой ошибке кого-то просто пробуйте делать print каждой сущности, которую получаете в своём коде. Если бы вы напечатали photos_list и photo, то возможно поняли бы, в чём проблема.

Перебрать значения словаря можно так:

for key, val in photos_list.items():
    print(f"{key}: {val}")
→ Ссылка