2011-06-04 78 views
-1

我可能是錯誤的,但因爲我回溯到Python 2.7 3.2,我發現了一些sqlite3的是這樣做,我不喜歡......當我用用如何阻止返回Unicode符號源碼

我cursor.fetch方法將返回(1,X,X,X)從我的表

但在其2.7返回(1,u'x 'u'x',u'x')

如何讓它在我的查詢中不再返回'u'?我需要將返回值存儲在變量中,這有點讓人煩惱,不得不解決這個問題。

編輯:經過一點點研究,我已經找到一種方法...

db.text_factory = STR

,如果有更好的方法請告訴我,因爲我真的不連知道這種方法做什麼,討厭改變錯誤的東西

+0

你知道「u」只是字符串前綴和打印輸出的一部分,而不是實際的數據,對吧? – 2011-06-04 08:00:26

+0

多數民衆贊成在我認爲,但是當我一直在顯示在任何我打印到屏幕上時,我感到沮喪 – Isov5 2011-06-04 08:01:14

回答

2

嘆息。

(1, u'x' ,u'x' ,u'x')是一個元組。該元組包含四個元素。其中一個是整數,另外三個是unicode字符串,如u所示。

如果一次打印整個元組,它將看起來像上面那樣。但這是一件很愚蠢的事情,因爲大概你實際上想要對元組的內容做些什麼,而不是元組本身。

如果您輸入print result[1],則會看到輸出結果僅爲x:實際打印時不顯示u。這是正確的行爲。

如果您使用您發佈的代碼,只要您從數據存儲中檢索到非ASCII值(例如,名稱中包含重音字符的人),事情就會變得非常糟糕。

相關問題