2015-12-02 1 views
0

У меня здесь действительно странная проблема, я не могу понять. В первый раз, когда выполняется следующий код, он работает так, как вы ожидаете, города и страны будут напечатаны правильно. Каждый раз после этого ничего не печатается.Итерация по dict и значения не всегда печатаются

for tweet in tweets: 
    city = tweet['city'] 
    country = tweet['country'] 
    print("{}, {}".format(city, country)) 

Если я просто распечатаю весь dict, я вижу, что этот город и страна ARE находятся там, и у них есть ценности. У меня есть некоторые рабочие потоки в фоновом режиме, которые обновляют город и страну, но я не могу понять, почему это повлияло бы на это, если это так.

+5

'твиты', вероятно, генератор, который можно использовать только один раз. –

+0

Можем ли мы увидеть еще один код для контекста? – David

+0

Ahhh, спасибо @PaulH, вернулся и исправил мой __next__, чтобы сбросить его в конце и решить проблему. – Nathan

ответ

0

Проблема, для тех, кто имеет подобную проблему, заключалась в том, что в моей функции __next__ в моем классе Tweet я не перезапускал итератор. Поэтому после повторной обработки объекта один раз позиция была в конце списка и никогда не возвращалась в начале.