2013-07-17 64 views
1

我對Python很新,所以請忍受我在這裏!Python:帶b前綴的輸出

我已經從ActiveState採取了一些代碼(然後對它進行一些修改)來打開一個DBF文件,然後輸出到CSV。

這對Python 2.5非常適用,但我現在已經將它移到了Python 3.3並遇到了很多問題,其中大部分問題都解決了。

最後一個問題我是爲了運行的代碼,我不得不前綴b一些項目正常(因爲我是越來越TypeError: expected bytes, bytearray or buffer compatible object錯誤)

代碼現在工作和輸出,除了每個字段顯示爲b'DATAHERE'(其中DATAHERE當然是實際數據!)

所以...有沒有人知道我怎麼能阻止它輸出b字符?如果需要,我可以發佈代碼,但是它相當長,所以我希望有人能夠發現我期望的事情是簡單的,我做錯了!

謝謝!

回答

3

您正在看到代碼輸出字節值;如果你預計unicode字符串代替,簡單地解碼:

yourdata.decode('ascii') 

其中ascii應該由你的數據使用的編碼來代替。

+0

感謝 - 根據我對zhangyangyu的回答的評論 - 我將如何將此函數包含在'records = [[rec [7] .replace(b'',b'')] + [rec [9] .strip( )] + [rec [10] .strip()] + [rec [11] .strip()] + [rec [3] .strip()] for rec in records]'? – KrisReynolds

+0

然後您將獲得一個嵌套的字節字符串列表; '[r.decode('someenc')for your_new_list]'依次解碼;您可以在'.strip()'或'.replace()'調用之後鏈接'.decode()'調用。 –

+0

完美!非常感謝@Martijn Pieters – KrisReynolds