1

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'])
4

2 に答える 2

3

405,000は有効ではありませんint。そのコンマを削除する必要があります。

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

またはモジュールを使用しlocaleます:

import locale

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

d_value = locale.atoi(d['Debt Value'])
于 2013-04-18T22:38:39.887 に答える
3

値にカンマが含まれているようです。これがエラーの原因です。次のような方法で数値をサニタイズすることができます。

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

作業中は、作業が終わったらファイルを閉じることをお勧めします。with ステートメントを使用して、ブロック後に確実に閉じることができます。

with open(c_name + ".csv") as csvfile:
    for d in csv.DictReader(csvfile, delimiter=','):
        global d_value
        d_value = int(d['Debt Value'].replace(",", ""))
于 2013-04-18T22:38:39.680 に答える