0

当我尝试使用 将 unicode 变量转换为 floatunicodedata.numeric(variable_name)时,我收到此错误“需要单个 Unicode 字符作为参数”。有谁知道如何解决这个问题?

谢谢!

这是我正在使用的代码片段:

f = urllib.urlopen("http://compling.org/cgi-bin/DAL_sentence_xml.cgi?sentence=good")
s = f.read()
f.close()
doc = libxml2dom.parseString(s)
measure = doc.getElementsByTagName("measure")
valence = unicodedata.numeric(measure[0].getAttribute("valence"))        
activation = unicodedata.numeric(measure[0].getAttribute("activation"))

这是我在运行上面的代码时遇到的错误

Traceback (most recent call last):
File "sentiment.py", line 61, in <module>
valence = unicodedata.numeric(measure[0].getAttribute("valence"))        
TypeError: need a single Unicode character as parameter
4

1 回答 1

2

总结:改用float()

numeric函数采用单个字符。它不进行一般转换:

>>> import unicodedata
>>> unicodedata.numeric('½')
0.5
>>> unicodedata.numeric('12')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: need a single Unicode character as parameter

如果要将数字转换为 a float,请使用该float()函数。

>>> float('12')
12.0

但是,它不会做 Unicode 魔术:

>>> float('½')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '½'
于 2012-11-18T01:26:13.337 回答