@maximifn
Пока ты спишь - твой враг качается

Как взять первые 30 итераций?

API запрос выводит данный код

{
   "data": [
      {  
         "Phrase": (string),
         "GeoID": [
            (int)
            ...
         ],
         "SearchedWith": [
            {  
               "Phrase": (string),
               "Shows": (int)
            }
            ...
         ],
         "SearchedAlso": [
            {  
               "Phrase": (string),
               "Shows": (int)
            }
            ...
         ]
      }
      ...
   ]
}

Есть цикл который перебирает все объекты данного массива

i=0
for x in responsedata['data']:

        for ph in responsedata['data'][i]['SearchedWith']:
            print '%s:%s' % (ph['Phrase'], ph['Shows'])
            b = str(ph['Phrase'].encode('utf8'))
            c = str(ph['Shows'])

            # записываем в файл каждую фразу, полученную от Яндекса
            f.write(b + ':' + c + '\n')
            if i == 30: continue
        if i == 30: continue
        i = i + 1

Он работает

{  
           "Phrase": (string),
           "Shows": (int)
        }

Таких объектов в SearchWith более 300 штук, нужно взять только первые 30 объектов из SearchWidth, Пробовал цикл While пишет что это индекс списка через который меняется вывод объекта является строкой а не числом.
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
@zzzevaka
for x in responsive['data']:
    for ph in x['SearchedWith'][:30]:
        ...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OKyJIucT
@OKyJIucT
Sunshine reggae
Это надо перед циклом ставить, а не после
if i == 30: continue
либо break использовать вместо continue
Ответ написан
leahch
@leahch
3Д специалист. Долго, Дорого, Дерьмово.
Меняем
for x in responsedata['data']:
на
for x in responsedata['data'][:30]:
Да и вообще, как-то так:
for item in responsedata['data'][:30]:
        for ph in item['SearchedWith']:
            print '%s:%s' % (ph['Phrase'], ph['Shows'])
            b = str(ph['Phrase'].encode('utf8'))
            c = str(ph['Shows'])

            # записываем в файл каждую фразу, полученную от Яндекса
            f.write(b + ':' + c + '\n')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 мар. 2024, в 13:07
7500 руб./за проект
19 мар. 2024, в 11:54
3000 руб./за проект
19 мар. 2024, в 11:52
3000 руб./за проект