代码之家  ›  专栏  ›  技术社区  ›  JPV

Python中的转换类型

  •  0
  • JPV  · 技术社区  · 6 年前

    我有以下代码

    text_file = open("up2017.txt", "r")
    amount=[]
    for line in text_file:
    
        fields =  line.strip().split(" ")
        amount.append(fields[-1])
    
    list(map(float,amount))
    

    值错误:无法将字符串转换为浮点:“50.000,00”

    文本文件看起来像

    13.10    Ovf           12.10            50.000,00                50.000,00
    30.10    Bgs                              30.10            12.000,00                62.000,00
    30.11    Bgs                              30.11            12.000,00                74.000,00
    15.12    Bgs                              15.12            53.528,36               127.528,36
    30.12    Bgs                             30.12            12.000,00               139.528,36
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   jpp    6 年前

    使用 str.replace 方法:

    amount.append(fields[-1].replace('.', '').replace(',', '.'))
    
        2
  •  3
  •   Matias Cicero    6 年前

    locale

    例如,在讲西班牙语的国家,使用 . 作为千位分隔符 , 作为十进制分隔符。

    import locale
    locale.setlocale(locale.LC_NUMERIC, 'es')
    value = locale.atof('50.032,56') # yields float(50032.56)
    

    import locale
    locale.setlocale(locale.LC_NUMERIC, 'es')
    
    # ...
    
    values = map(locale.atof, amount)