我正在解析银行的网站以获取汇率。
但是它们返回的格式是“61,8000”
并且它是一个字符串。
我尝试过 float()
但它抛出了一个错误。
我最后尝试的是:
sell = "{:10.6f}".format( e.select_one('.prodazenVal').text.strip() )
buy = "{:10.6f}".format( e.select_one('.kupovenVal').text.strip() )
middle = "{:10.6f}".format( e.select_one('.sredenVal').text.strip() )
我收到以下错误:
Traceback (most recent call last):
File "jobs/fetchExchangeRate.py", line 28, in <module>
sell = "{:10.4f}".format( e.select_one('.prodazenVal').text.strip() )
ValueError: Unknown format code 'f' for object of type 'str'
<小时/>
我想得到:“61.8000”
有什么建议吗?
最佳答案
您可以使用Python更改为locale使用逗号作为小数点分隔符,例如俄语,如下所示:
import locale
locale_backup = locale.getlocale(locale.LC_NUMERIC)
locale.setlocale(locale.LC_NUMERIC, locale='ru_RU')
sell = "{:10.6f}".format(locale.atof(e.select_one('.prodazenVal').text.strip()))
buy = "{:10.6f}".format(locale.atof(e.select_one('.kupovenVal').text.strip()))
middle = "{:10.6f}".format(locale.atof(e.select_one('.sredenVal').text.strip()))
locale.setlocale(locale.LC_NUMERIC, locale_backup)
locale.atof
方法可用于将本地化数字字符串转换为 float 。
关于python - 将解析数字格式化为 float(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741446/