我正在尝试解决 pyschools 网站上的一个问题,该网站要求编写一个脚本,该脚本以逗号“,”作为分隔符读取 CSV 文件并返回记录列表。在他们的网站上运行我的脚本时,它使用以下测试用例返回不正确: csvReader('books.csv')[0] 因此返回:
['"Pete,Zelle","Intro to HTML, CSS",2011']
当预期结果是:
['Pete,Zelle', 'Intro to HTML, CSS', '2011']
我注意到问题与引号 " & ' 有关,但仍然没有找到正确的答案,使用 replace('"','') 为 line 变量删除双引号不能修复它返回为:
['Pete,Zelle,Intro to HTML, CSS,2011']
它从某些单词中删除最后一个引号,例如 Zelle,而不是 Zelle',。
下面提供了练习、问题和我当前脚本的链接。非常感谢任何解释或帮助。
链接: http: //www.pyschools.com/quiz/view_question/s13-q8
问题:编写一个函数来读取以“,”为分隔符的 CSV 文件并返回记录列表。该函数必须能够忽略一对双引号 '"' 中的 ','。
脚本:
def csvReader(filename):
records = []
for line in open(filename):
line = line.rstrip() # strip '\n'
if line=='","':
continue # ignore empty line
records.append([line.replace('"','')])
return records