【问题标题】:i am trying to get a value from a .csv file in python and facing this error我正在尝试从 python 中的 .csv 文件中获取值并面临此错误
【发布时间】:2013-04-12 05:34:13
【问题描述】:

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

【问题讨论】:

    标签: python csv input


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-02-13
        • 1970-01-01
        • 2018-04-06
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-09
        相关资源
        最近更新 更多