ValueError: invalid literal for int() with base 10: '405,000'
我正在試圖從Python中的.csv文件的值,並且面臨着這樣的錯誤
的代碼如下:
for d in csv.DictReader(open(c_name + '.csv'), delimiter=','):
global d_value
d_value = int(d['Debt Value'])
ValueError: invalid literal for int() with base 10: '405,000'
我正在試圖從Python中的.csv文件的值,並且面臨着這樣的錯誤
的代碼如下:
for d in csv.DictReader(open(c_name + '.csv'), delimiter=','):
global d_value
d_value = int(d['Debt Value'])
它看起來像你有你的價值,這就是爲什麼你看到的錯誤逗號。你可能想通過做這樣的事情來淨化你的號碼:
d_value = int(d['Debt Value'].replace(",", ""))
當你在它,這是一個好主意,當你與他們進行關閉您的文件。您可以使用with statement以確保它會在您封鎖後關閉。
with open(c_name + ".csv") as csvfile:
for d in csv.DictReader(csvfile, delimiter=','):
global d_value
d_value = int(d['Debt Value'].replace(",", ""))
405,000
不是有效int
。你要麼需要刪除逗號:
d_value = int(d['Debt Value'].replace(',', ''))
import locale
# You might need to set a locale
# locale.setlocale(locale.LC_ALL, '')
d_value = locale.atoi(d['Debt Value'])