我在将csv文件中的数据作为整数读取时遇到了一些麻烦,下面是我的csv文件的示例:
Col1 Col2 Col3
Header Header Header
Header 1 1,000,000
BLANK 2 500,000
BLANK 3 200,000
我想要做的是阅读来自Col3'的数据。 (不包括标题)作为整数进入元组,下面是我的代码:
import csv
prizePoints = []
with open("csvfile.csv") as prizes:
next(prizes)
for row in prizes:
prizePoints.append(row)
当我尝试这个时,我收到的错误是:
ValueError: invalid literal for int() with base 10: '"1'
打印行的示例:
['', '1', '1,000,000']
我认为这是由于Col3'中的值。但是,有逗号,我不确定如何解决这个问题,所以任何帮助将不胜感激! (P.S.我不能改变Col3'的单元格格式,以便它们没有逗号)。
答案 0 :(得分:3)
你在这里遇到了多个问题。
for row in prizes
。由于prizes
是文件对象,因此当您处理第一行时,这将消耗文件中的所有剩余行。row
的{{1}}。csv.reader
split
每个row
。如果您执行了csv.reader
部分,那么该行将是一个列表,而不是一个字符串,因此没有什么可以拆分。int
上致电1,000,000
。这个很容易解决。对于快速和肮脏的解决方案,您只需执行int(s.replace(',', '')
。答案 1 :(得分:0)
在解析数字时考虑使用locale
模块 - 如果遇到某些区域切换千位和小数点分隔符的问题,这将有所帮助