Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2022, 01:06   #1
Катя93
Пользователь
 
Регистрация: 11.01.2021
Сообщений: 48
По умолчанию Условие при получении данных из ВК не выполняется?

Здравствуйте, пытаюсь выполнить видеоурок, подключиться через API VK. Мне удалось собрать данные со страничке в Вконтакте, с помощью этого кода:
Код:
for post in posts:
      post_id = post["id"]
      print(f"Отправляем пост с ID {post_id}")
      try:
        if "attachments" in post:
            post = post["attachments"]
            
            if post[0]["type"] == "photo":
              photo_quality = [0,1,2,3,4,5,6,7,8,9] #СООТВЕСТВУЕТ КОЛИЧЕСТВУ КАРТИНОК В ПОСТУ
              if len(post) == 1:
                for pq in photo_quality:
                  #print(post[0]["photo"]["sizes"][0]["url"])
                  if pq in post[0]["photo"]["sizes"]:
                      
                      post_photo = post[0]["photo"]["sizes"][pq]["url"]
                      print(post_photo)
                      break
                #post_photo = post[0]["photo"]["sizes"][0]["url"]
                #print(post_photo)
              else:
                for post_item_photo in post:
                  
                  if post_item_photo["type"] == "photo":
                    for pq in photo_quality:
                     
                      if pq in post_item_photo["photo"]["sizes"]:
                       
                        post_photo = post_item_photo["photo"]["sizes"][pq]["url"]
                        print(post_photo)
                        break
                  else:
                      print("Линк или аудио пост")
                      break
                  #post_photo = post_item_photo["photo"]["sizes"][0]["url"]
                  #print(post_photo)
               
      except Exception:
        print(f"Что-то пошло не так c постом ID {post_id}!")
  else:
    print("Файл с ID постов найден начинаем выборку свежих постов!")
Теперь мне нужно получить фотографии для этого я использую цикл и условие.
Код:
if "attachments" in post:
            post = post["attachments"]
            
            if post[0]["type"] == "photo":
              photo_quality = [0,1,2,3,4,5,6,7,8,9] #СООТВЕСТВУЕТ КОЛИЧЕСТВУ КАРТИНОК В ПОСТУ
              if len(post) == 1:
                for pq in photo_quality:
                  #print(post[0]["photo"]["sizes"][0]["url"])
                  if pq in post[0]["photo"]["sizes"]:
                      
                      post_photo = post[0]["photo"]["sizes"][pq]["url"]
                      print(post_photo)
                      break
                #post_photo = post[0]["photo"]["sizes"][0]["url"]
                #print(post_photo)
              else:
                for post_item_photo in post:
                  
                  if post_item_photo["type"] == "photo":
                    for pq in photo_quality:
                     if pq in post_item_photo["photo"]["sizes"]:
                       
                        post_photo = post_item_photo["photo"]["sizes"][pq]["url"]
                        print(post_photo)
                        break
                  else:
                      print("Линк или аудио пост")
                      break
                  #post_photo = post_item_photo["photo"]["sizes"][0]["url"]
                  #print(post_photo)
Почему-то вот это условие не проходит и фотографии не выводится через print.
Код:
if pq in post_item_photo["photo"]["sizes"]:
                       
                        post_photo = post_item_photo["photo"]["sizes"][pq]["url"]
                        print(post_photo)
                        break
Объясните, что означает условие где используется “in”, например
if pq in post_item_photo["photo"]["sizes"]: (впервый раз вижу такое условие). и как исправить, чтобы фото выводились?

Через сервис json, данные из вконтакта, выглядят вот так.
Screenshot.jpg
Заранее извиняюсь что код многократно дублирую иначе не объяснить.

P.S. Вконтакте которое показывают в видеоуроке отличается от того который сейчас. В ВК внесли изменения и приходится заново разбираться.

Последний раз редактировалось Катя93; 12.06.2022 в 01:10.
Катя93 вне форума Ответить с цитированием
Старый 12.06.2022, 20:49   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

in - оператор для проверки вхождения, например, проверяем наличие заданного значения элемента в списке, ключа в словаре и ещё много чего:
Код:
x = [2, 5, 'a', 3]
if 'a' in x:
    print(True)
else:
    print(False)
Посмотрите, например, тут: https://docs-python.ru/tutorial/oper...tva-in-python/
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется условие if tarstar Общие вопросы C/C++ 3 04.12.2017 23:06
Не выполняется условие Nich. C# (си шарп) 0 27.11.2013 18:10
Не выполняется условие Astash Помощь студентам 2 03.12.2011 11:21
Не выполняется условие Ragnarek45 Общие вопросы Delphi 3 10.12.2010 15:08
не выполняется условие Link12 Общие вопросы C/C++ 6 30.03.2010 19:36