2017-12-03 12 views
1

xmlファイルから情報を読み込むときに問題が発生します。読み込んだデータは数字のリストになっていますが、読み込んだときには文字列として扱われます。 XMLデータをリストとして読み込む方法や、文字列をリストに変換する方法はありますか?文字列をpythonでリストに変換するか、xmlデータをリストとして読み込みます。

例:[1.0,2.0,3.0,4.0,5.0]のようにxmlからデータを取得します。タイプをチェックすると、その文字列、つまり全体が括弧とカンマを含む文字列となります。

はこのために数字

+0

'[mystring.lstripにおけるxのフロート(X)( '[')。rstrip( ']')。ストリップ()。スプリット( '')]' – AK47

+0

のリストに列@ AK47壮大なワンライナー!初心者にはあまり役に立ちません... –

+0

@ AK47はい、それは良い方法です、アップヴォートの価値があります(私は 'eval()'について考えたこともありませんでした!)普段はペストのように避けていますが、 –

答えて

3

あなたはeval()を使用することができますフロート

>>> string = '[1.0, 2.0, 3.0]' 

>>> print(type(string)) 
<type 'str'> 

>>> mylist = eval(string) 

>>> print(type(mylist)) 
<type 'list'> 

>>> print([type(x) for x in mylist]) 
[<type 'float'>, <type 'float'>, <type 'float'>] 

>>> print(mylist) 
[1.0, 2.0, 3.0] 
+0

ああ、私はこれをPythonで試しています。したがって、evalコマンドはMayaのPythonライブラリのキーワードであるため動作しません – dege

+0

'eval()'は[python2](https://docs.python.org/2/library/functions.html) #eval)と[python3](https://docs.python.org/3/library/functions.html#eval) – AK47

+0

これはeval()のバージョンでもあるので、残念ながらpythonのeval()を上書きします。 – dege

2

のリストにこの背中を変換する方法のまわりで私の頭をラップすることはできません、あなたは)(組み込みメソッドをstr.splitを使用します。

設定x = "[1.0, 2.0, 3.0, 4.0, 5.0]"

まず、文字列の周りの角括弧を取り除く:

x = x[1:-1](xは、今長い文字列"1.0, 2.0, 3.0, 4.0, 5.0"です)

その後、形成するために、文字列を分割文字列のリスト:

x = x.split(',')

(xは今 ["1.0", "2.0", "3.0", "4.0", "5.0"]、文字列のリストです)

次に、(私はあなたがすることをしたいと仮定して)フロートにこれらの文字列のすべてを変換:あなたはあなたのを変換したい場合は

x = [float(i) for i in x](xは、今floatのリスト[1.0, 2.0, 3.0, 4.0, 5.0]です)

関連する問題