我目前正在学习用python进行数据分析的Udacity课程,我们一直在使用unicodesv库。在
更具体地说,我们编写了以下代码,该代码读取csv文件并将其转换为列表。代码如下:
def read_csv(filename):
with open(filename,'rb')as f:
reader = unicodecsv.DictReader(f)
return list(reader)
为了弄清楚这一点,我试图弄清楚数据在字典和列表中是如何表示的,我非常困惑。有人能给我解释一下吗。在
例如,有一件事我不明白为什么下面的代码会抛出一个错误
^{pr2}$下面的方法很好:
for enrollment in enrollments:
enrollments['cancel_date'] = parse_date(enrollment['cancel_date'])
希望这个问题有意义。我只是很难想象这一切是如何表现出来的。在
任何帮助都将不胜感激。 谢谢。在
我也在这里遇到了一些与课程有关的麻烦,结果发现这个问题没有答案。不过我想你已经成功了。总之在这里回答,这样别人可能会觉得这个有用。在
我们都知道,字典可以像
同样的
enrollments['cancel_date']
也可以。在但是如果你做一些
^{pr2}$你会看到结构
如果你注意到括号,它就像一个
list of dictionaries
。你可能会说它是一个list of list
。试试看。在你会得到一个错误!
KeyError
。在所以,这就像是一本字典集。如何访问它们?通过
enrollments[n]
缩小到任何字典(相当于csv的行)。在现在你有一本字典了。现在可以自由使用
key
。在现在进入你的循环
它所做的是
enrollment
是一个伪变量,它捕捉每个iterable元素enrollments
,就像enrollments[1], enrollments[2] ... enrollments[n]
。在所以每次}上工作。在
enrollment
都有来自enrollments
的字典,所以enrollment['cancel_date']
会在{最后,我想补充一点,这就是为什么我来到线程。在
答案是这意味着字符串被编码为
Unicode
。它不是字符串的一部分,而是python表示法。Unicode是一个包含世界上所有语言的字符和符号的库。在这主要是因为
unicodecsv
包不需要跟踪和转换csv文件中的每个项目。它将它们读作Unicode以保留所有字符。这就是为什么Caroline和您定义并使用parse_date()
和其他函数将Unicode字符串转换为所需的数据类型。这都是数据争夺过程的一部分。在相关问题 更多 >
编程相关推荐