繁体   English   中英

如何修复我的python代码中的错误,该错误抱怨有人想要一个字符串?

[英]How do I fix an error in my python code where it is complaining about a string being wanted?

我实际上是在使用Udacity.com上有关数据整理的课程中的代码。 代码文件很短,因此我能够复制他们所做的事情,但仍然出现错误。 他们使用python2.7.x。 该课程大约有一年的历史,因此有关2.7分支中的功能或模块的某些内容可能已更改。 我的意思是讲师使用的代码有效。

我知道使用csv模块或函数可以解决此问题,但是他们想演示自定义解析函数的用法。 此外,他们正在使用枚举功能。 这是要点链接

这应该非常简单和基本,这就是为什么让我感到沮丧的原因。 我知道他们正在读取文件,该文件是csv文件,为二进制文件,其行的参数为“ rb”

with open("file.csv", "rb") as f:

您的csv文件中没有匹配的字符,而您的测试函数中没有字典。 特别是,在CSV文件中使用的是一个破折号 (U + 2014),并在您的firstlinetenthline词典您正在使用连字符减号 (U + 002D)。

hex(ord(d[0]['US Chart Position'].decode('utf-8')))
'0x2014'  # output: code point for the em dash character in csv file

hex(ord(firstline['US Chart Position']))
'0x2d'    # output: code point for hyphen-minus

要解决此问题,只需将要点中csv中的字符复制并粘贴到源代码的词典中,以替换-字符。

确保在文件顶部添加此注释:

# -*- coding: utf-8 -*-

这将确保Python知道源代码中应包含非ascii字符。

或者,您可以使用连字符替换csv文件中的所有 (破折号)字符:

sed 's/—/-/g' beatles-diskography.csv > beatles-diskography2.csv

然后,请记住在源代码中使用新文件名。

暂无
暂无

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

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