簡體   English   中英

怪異的python打印行為

[英]weird python print behaviour

為什么這不打印任何內容:

for item in pipe.json["value"]["items"]:
    print item["pubDate"]
但是這樣做:
 for item in pipe.json["value"]["items"]: print item["pubDate"] + "\\n" 
ps循環正在另一個循環內運行。

pps,這是在Google App Engine application.i內部運行的。我已經看過http響應,在第一種情況下它完全是空的。

緩沖可能是一個問題,在這種情況下,刷新標准輸出會有所幫助。

import sys
sys.stdout.flush()

您是在使用某種wsgi框架,還是只是嘗試編寫純CGI代碼(這是錯誤的?)

您可能根本不想在這里使用print ,而是使用框架的添加到響應中的方法(對於webapp, self.response.out.write )。 我的猜測是,如果沒有多余的\\n ,您會將所有這些數據寫入HTTP標頭,因此,您只會丟失輸出的第一行。

在GAE上,如果要使用print作為輸出,則必須在打印之前先打印一個空字符串,以免發生此類問題:

print ""
print "something"

這只是一個瘋狂的猜測,但是如果item ['pubDate']是一個非字符串對象,則可能是特殊方法之間存在差異的結果。 也許__str__方法什么也不返回,而__add__方法卻有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM