我有以下的代碼返回以下錯誤: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