我有以下的代码返回以下错误:ValueError异常:无效的基数为10字面INT():“年龄”
ValueError: invalid literal for int() with base 10: 'age'
注:我已经通过了类似的错误在其他问题看,但这与他们每个人都不相同。
我在另一个关于求和csv文件中列的值的另一个stackoverflow问题中注意到,此代码工作,所以我不确定它为什么不能在这里工作。这是Python的3
import csv
def main():
total_age = 0
with open("names_ages.csv","r") as names_ages:
names_agesReader=csv.reader(names_ages)
#for row in csv.reader(textlines[1:]):
for row in names_agesReader:
total_age += int(row[1])
print(total_age)
#print("The total age is:", total_age)
main()
我是一个 )与解释 b修正错误的解决方案衷心的)建议,以解决同一问题的更优雅的方式,如果有
UPDATE:感谢阿卜杜,头问题已经确定:现在
更新的代码仍然会产生一个逻辑错误:
项文件内容
name age
Alice 1
Bob 2
Charles 3
更新的代码
import csv
def main():
with open("names_ages.csv","r") as names_ages:
names_agesReader=csv.reader(names_ages)
#for row in csv.reader(textlines[1:]):
total_age = 0
next(names_agesReader)
for row in names_agesReader:
total_age += float(row[1])
print(total_age)
#print("The total age is:", total_age)
main()
错误的输出: - 这是固定的(identation错误)
1.0
3.0
6.0
>>>
工作正常 -
total_age = 0
next(names_agesReader)
for row in names_agesReader:
total_age += float(row[1])
print(total_age)
感谢阿卜杜
在文件中有标题吗?如果是这样,你试图将一个头(这是一个字符串)转换为一个整数。您应该在'for-loop'之前加上'next(names_agesReader)'来跳过标题。 – Abdou
这真的很有用......你可以发布一个解决方案,内置你的答案。完整的代码在上面?这将是最有帮助的。很多教程都没有经过从CSV读取时涉及头的事实。这是CSV和.txt文件的主要区别 - CSV文件是否始终具有自动标头? – MissComputing
请参阅下面的答案。 – Abdou