我试图从python中的.csv文件中获取一个值并面临此错误

时间:2013-04-18 22:36:27

标签: python csv input

ValueError: invalid literal for int() with base 10: '405,000'

代码如下:

for d in csv.DictReader(open(c_name + '.csv'), delimiter=','):
    global d_value
    d_value = int(d['Debt Value'])

2 个答案:

答案 0 :(得分:3)

405,000不是有效的int。您需要删除该逗号:

d_value = int(d['Debt Value'].replace(',', ''))

use the locale module

import locale

# You might need to set a locale
# locale.setlocale(locale.LC_ALL, '')

d_value = locale.atoi(d['Debt Value'])

答案 1 :(得分:3)

看起来您的值中有逗号,这就是您看到错误的原因。您可能希望通过执行以下操作来清理您的号码:

    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(",", ""))