为什么这不打印任何东西:
for item in pipe.json["value"]["items"]:
print item["pubDate"]
但这样做:
for item in pipe.json["value"]["items"]:
print item["pubDate"] + "\n"
附:循环在另一个循环中运行。
p.p.s。这是在谷歌应用程序引擎应用程序内运行。我已经查看了http响应,它在第一种情况下完全是空的。
答案 0 :(得分:4)
这可能是缓冲问题,在这种情况下,刷新标准输出会有所帮助。
import sys
sys.stdout.flush()
答案 1 :(得分:1)
您使用某种wsgi框架,还是只是尝试编写纯CGI代码(这是一个错误?)
您可能根本不想在这里使用print
,而是使用框架添加到响应的方法(对于webapp,self.response.out.write
)。我的猜测是,如果没有额外的\n
,你就会将所有这些数据写入HTTP标头,并且使用它你只会丢失输出的第一行。
答案 2 :(得分:1)
在GAE上如果你想使用print进行输出,你必须在打印之前打印一个空字符串,这样就不会出现这样的问题:
print ""
print "something"
答案 3 :(得分:0)
这只是一个疯狂的猜测,但如果item ['pubDate']是一个非字符串对象,它可能是特殊方法之间差异的结果。也许__str__
方法不会返回任何内容,而__add__
方法会执行不同的操作。