Python:以b为前缀的输出
我对Python还很陌生,所以请容忍我 我从中获取了一些代码(然后对其进行了一点修改),以打开一个DBF文件,然后输出到CSV 这在Python2.5上运行得非常好,但我现在将其移动到Python3.3,遇到了许多问题,其中大部分问题我已经解决 我遇到的最后一个问题是,为了运行代码,我不得不在一些项目前面加上Python:以b为前缀的输出,python,python-3.x,Python,Python 3.x,我对Python还很陌生,所以请容忍我 我从中获取了一些代码(然后对其进行了一点修改),以打开一个DBF文件,然后输出到CSV 这在Python2.5上运行得非常好,但我现在将其移动到Python3.3,遇到了许多问题,其中大部分问题我已经解决 我遇到的最后一个问题是,为了运行代码,我不得不在一些项目前面加上b(因为我得到了TypeError:expected bytes、bytearray或buffer-compatible object错误) 代码现在可以正常工作并正确输出,但每个字段都显示
b
(因为我得到了TypeError:expected bytes、bytearray或buffer-compatible object
错误)
代码现在可以正常工作并正确输出,但每个字段都显示为b'DATAHERE'
(其中DATAHERE当然是实际数据!)
所以。。。有人知道如何阻止它输出b
字符吗?如果需要,我可以发布代码,但它相当长,所以我希望有人能够发现我所期望的是我做错的简单事情
谢谢 您将看到代码输出字节值;如果您希望使用unicode字符串,只需解码:
yourdata.decode('ascii')
其中,
ascii
应替换为数据使用的编码方式。谢谢-根据我对张阳宇回答的评论-我如何在records=[[rec[7]。replace(b'',b'')]+[rec[9].strip()]+[rec[10].strip()]+[rec[11].strip()]+[rec[3].strip()]中包含此函数以用于记录中的rec]
?然后就有了一个嵌套的字节字符串列表<代码>[r.decode('someenc')在您的新列表中为r进行解码]依次对每个代码进行解码;您可以在.strip()
或.replace()
调用之后立即链接.decode()
调用。太棒了!非常感谢@Martijn Pieters