string - Python 3.5 需要写一个类似字节的对象,而不是'str'

Posted

技术标签:

【中文标题】string - Python 3.5 需要写一个类似字节的对象,而不是\'str\'【英文标题】:string - Python 3.5 write a bytes-like object is required, not 'str'string - Python 3.5 需要写一个类似字节的对象,而不是'str' 【发布时间】:2019-01-27 03:13:41 【问题描述】:

我的以下 python 代码适用于 Python 2,

只写一次标题

if header_written == False:
    header = out_data.keys()
    writer.writerow(out_data.keys()) # write headers
    header_written = True

写入值

writer.writerow(out_data.values()) #write rows
del out_data  #del object
del row_data #del dict object

但在 Python 3 中,它返回以下错误:

TypeError: 需要一个类似字节的对象,而不是 'str'

【问题讨论】:

【参考方案1】:

您必须将其转换为字节。你可以这样做。

bytes = string.encode(encoding='UTF-8')

更多信息在这里

Best way to convert string to bytes in Python 3?

【讨论】:

谢谢!我将第一部分的第三行更改为:writer.writerow(out_data.keys().encode('utf-8')) 但以下错误消息显示:'odict_keys' object has no attribute 'encode'【参考方案2】:

这是关于最初的部分。

改变

with open('r2.csv', 'r') as infile , open("output2.csv",'wb') as resultFile:

with open('r2.csv', 'r') as infile , open("output2.csv",'w') as resultFile:

【讨论】:

以上是关于string - Python 3.5 需要写一个类似字节的对象,而不是'str'的主要内容,如果未能解决你的问题,请参考以下文章

弹性豆茎需要 python 3.5

python 3.5(socket)

Python 3.5学习笔记(第二周)

RuntimeError:安装 python 库时需要 Python 版本 >= 3.5

需要 Python 3.5 字节类对象

Scikit learn (Python 3.5):我需要导入一个库来完成这项工作吗?