1
我有Python字符串u'\u221220'
又名「-20」與the Unicode minus sign。將unicode字符串轉換爲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
我怎樣才能正確地轉換u'\u221220'
成在Python 2和Python 3中float -20.0
?便攜式解決方案將非常棒。
作爲解決方法,將Unicode減號的所有出現置換爲常規號。此外,請提供解析器應該擴展的票據。它已經支持更多的數字,而不僅僅是普通的'0-9',所以增加對這種減號表示的支持應該是可能的。 –
嘗試'float(a.replace(u'\ N {MINUS SIGN}',' - '))'作爲解決方法。請參閱[相關Python問題](http://bugs.python.org/issue10581#msg191011)。 – jfs
@ J.F.Sebastian如果您將您的評論推薦給答案,我很樂意將其標記爲解決方案。 –