我的Python非常生疏。我有一个Cost列表作为字符串。我正在尝试将它们转换为浮点数,但当成本高于1000美元时,该值用逗号表示。 float(“1,000”)返回错误:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
decimal("1,000")
TypeError: 'module' object is not callable
我知道这可能是微不足道的,但你有解决方案吗?
答案 0 :(得分:3)
decimal
不是float
。 decimal是一个模块。这就是你得到错误的原因。
至于逗号,请先放下它们:
s = "1,000"
float(s.replace(",", "")) # = 1000.0
答案 1 :(得分:2)
在转换为float之前,使用re删除任何“,”格式。
>>> import re
>>> re.sub(",", "", "1000,00,00")
'10000000'
>>>
答案 2 :(得分:1)
引发的错误是因为你试图像这样调用模块:
>>> import decimal
>>> decimal("")
TypeError: 'module' object is not callable
你应该做:
>>> import locale
>>> import decimal
>>> locale.setlocale(locale.LC_ALL, '')
>>> decimal.Decimal(locale.atoi("1,000"))
Decimal('1000')
所以你可以像这样做