python中与区域设置无关的字符串到浮点的转换
我需要将字符串转换为float,但可以有不同的输入字符串格式,例如python中与区域设置无关的字符串到浮点的转换,python,locale,string-conversion,Python,Locale,String Conversion,我需要将字符串转换为float,但可以有不同的输入字符串格式,例如'1234,5'或'1234.5'或'1234,5'或'1234.5'或其他任何格式。我不能更改区域设置十进制指针或千位分隔符,因为我可能不知道我将提前获得什么数据 有没有一种方式、方法或库可以在不知道使用哪种语言环境的情况下解析和转换这种特定于语言环境的值 另外,对于相同的日期问题,是否存在任何解决方案 TIA。您可以对哪个字符是千位分隔符,哪个是小数点进行一些假设。但是,在某些情况下,您无法确切知道该怎么办: 查找最后一个字
'1234,5'
或'1234.5'
或'1234,5'
或'1234.5'
或其他任何格式。我不能更改区域设置十进制指针或千位分隔符,因为我可能不知道我将提前获得什么数据
有没有一种方式、方法或库可以在不知道使用哪种语言环境的情况下解析和转换这种特定于语言环境的值
另外,对于相同的日期问题,是否存在任何解决方案
TIA。您可以对哪个字符是千位分隔符,哪个是小数点进行一些假设。但是,在某些情况下,您无法确切知道该怎么办:
- 查找最后一个字符
或
。如果多次出现,则该数字没有小数点,该字符是千位分隔符,
- 如果字符串正好包含其中一个,则最后一个为小数点
- 如果字符串只包含一个点/逗号,那么您就很倒霉了:
或123.456
可能是数字123456
或123456
。但是,对于像123.456
这样的数字,即潜在千位分隔符后面的位数不是三的倍数,可以假定它是小数点123.45
1234
不明确,可能是1234.00
或1.234
Hm,我会考虑提出最低限度的有效变更,谢谢。