странное поведение печати Python - PullRequest
2 голосов
/ 16 декабря 2010

почему это ничего не печатает:

<code>for item in pipe.json["value"]["items"]:
    print item["pubDate"]
но это делает:
<code>for item in pipe.json["value"]["items"]:
   print item["pubDate"] + "\n"
постскриптум цикл работает внутри другого цикла.

p.p.s. это выполняется внутри приложения google app engine. Я посмотрел на http-ответ, и в первом случае он полностью пуст.

Ответы [ 4 ]

4 голосов
/ 16 декабря 2010

Это может быть проблема с буферизацией, в этом случае поможет очистка stdout.

import sys
sys.stdout.flush()
1 голос
/ 29 августа 2011

В GAE, если вы хотите использовать print для вывода, вам придется печатать пустую строку перед любой печатью, чтобы не возникало таких проблем:

print ""
print "something"
1 голос
/ 10 января 2011

Используете ли вы какую-то среду wsgi или просто пытаетесь написать чистый CGI-код (что является ошибкой?)

Возможно, вы вообще не хотите использовать print здесь, носкорее используя метод добавления вашей структуры к ответу (для веб-приложения, self.response.out.write).Я полагаю, что без лишних \n вы записываете все эти данные в заголовки HTTP, а при этом вы теряете только первую строку вашего вывода.

0 голосов
/ 16 декабря 2010

Это просто дикая догадка, но если item ['pubDate'] является нестроковым объектом, это может быть результатом различий между специальными методами.Возможно, метод __str__ ничего не возвращает, а метод __add__ делает что-то другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...