Python 将unicode字符串转换为浮点
我有Python字符串Python 将unicode字符串转换为浮点,python,python-2.7,python-3.x,unicode,type-conversion,Python,Python 2.7,Python 3.x,Unicode,Type Conversion,我有Python字符串u'\u221220'aka“−20英寸,带 当我试图转换成一个浮点数时 >>a=u'\u221220' >>>浮动(a) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 UnicodeEncodeError:“十进制”编解码器无法对位置0中的字符u'\u2212'进行编码:十进制Unicode字符串无效 使用Python 2和 >>a=u'\u221220' >>>浮动(a) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 ValueError:无法将字符串
u'\u221220'
aka“−20英寸,带
当我试图转换成一个浮点数时
>>a=u'\u221220'
>>>浮动(a)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
UnicodeEncodeError:“十进制”编解码器无法对位置0中的字符u'\u2212'进行编码:十进制Unicode字符串无效
使用Python 2和
>>a=u'\u221220'
>>>浮动(a)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:无法将字符串转换为浮点:'−20'
使用Python 3
如何在Python2和Python3中正确地将u'\u221220'
转换为float-20.0
?便携式解决方案非常好。来自@j-f-sebastian:
a=u'\u221220'
float(a.replace(u'\N{减号}','-'))
这就是诀窍。请参阅。将所有出现的Unicode减号替换为常规减号,作为解决方法。此外,提交一个应该扩展解析器的票证。它已经支持了比普通旧的
0-9
更多的数字,因此可以添加对该减号表示的支持。请尝试float(a.replace(u'\N{减号}','-')
作为解决方法。请参阅.@J.F.Sebastian如果您将您的评论提升为答案,我很乐意将其标记为解决方案。该解决方案适用于您的特定输入,但我不太愿意将其称为“将unicode字符串转换为浮点”问题的答案。如果对你有效;你可以