0

を使用して Unicode 変数を float に変換しようとすると、unicodedata.numeric(variable_name)「パラメーターとして 1 つの 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関数は1文字を取ります。一般的な変換は行いません。

>>> 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

数値を に変換する場合は、関数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 に答える