python - 将 unicode 字符串转换为 float

标签 python python-2.7 python-3.x unicode type-conversion

我有 Python 字符串 u'\u221220' aka "−20"with the Unicode minus sign .

当尝试转换成 float 时,我得到了

>>> a = u'\u221220'
>>> float(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'decimal' codec can't encode character u'\u2212' in position 0: invalid decimal Unicode string

使用 Python 2 和

>>> a = u'\u221220'
>>> float(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '−20'

使用 Python 3。

如何在 Python 2 和 Python 3 中将 u'\u221220' 正确转换为 float -20.0?可移植解决方案会很棒。

最佳答案

来自@j-f-sebastian:

a = u'\u221220'
float(a.replace(u'\N{MINUS SIGN}', '-'))

成功了。参见 the related Python issue .

关于python - 将 unicode 字符串转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198510/

相关文章:

python - 转换为 super 组时, Telegram 聊天 ID 是否保持不变?

python - 删除具有特定值的字典键

python - 3D 格式 : obj and duplicate vertices

python - 替换所有以某个前缀开头的字符串

python - python 中描述符概念的行为(令人困惑)

python - 如何在创建模块期间指定附加文件的安装位置

python - 使用具有 python 2 和 3 兼容性的 getpass

python-3.x - 为seaborn 热图创建自定义cmap

python - 在 Django 中,保存到数据库时如何返回现有模型实例

python - 从for循环中的字典键在python中创建动态变量