2013-07-17 39 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