繁体   English   中英

'str' object 在带有 unicodecsv 的 python 中没有属性 'decode'

[英]'str' object has no attribute 'decode' in python with unicodecsv

以下代码在 python 3.8 中出现错误,带有 networkx、unicodecsv

with open('hero-network.csv', 'r') as data:
    reader = csv.reader(data)
    **for row in reader:**
        graph.add_edge(*row)
AttributeError: 'str' object has no attribute 'decode'

csv中的reader方法接受reader而不是str

检查这篇文章

当您尝试解码已解码的str时,会发生该错误。 您是否正确传递参数?

来源: 'str' object 没有属性 'decode'。 Python 3 错误?

unicodescv.reader需要一个以二进制模式打开的文件,因为至少在理论上,它将解决如何解码字节。

with open('hero-network.csv', 'rb') as data:   # the mode is 'rb', not 'r'
    reader = csv.reader(data)
    for row in reader:
        graph.add_edge(*row)

正如评论中所指出的,当标准库的 csv 模块的 unicode 处理很差时, unicodecsv对 Python2 更有用。 在 Python 3 中,您可以在打开文件时指定编码并将生成的文件 object 传递给标准库的 csv 模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM