在python中将字符串转换为列表或以列表形式读取xml数据

时间:2017-12-03 01:13:50

标签: python string python-2.7 list python-2.x

所以当我从xml文件中读取信息时,我遇到了一个问题。它读入的数据应该是一个数字列表,但是当我读入它时,它就像一个字符串。有没有办法将xml数据作为列表或将字符串转换为列表的方式读取。

例如,我从xml中获取数据,如[1.0,2.0,3.0,4.0,5.0],如果我检查类型,则表示它是一个字符串,即整个事情是包含括号和逗号的字符串。

无法解决如何将其转换回数字列表

的问题

2 个答案:

答案 0 :(得分:4)

如果要将字符串转换为浮动列表

,可以使用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]

答案 1 :(得分: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现在为[1.0, 2.0, 3.0, 4.0, 5.0],浮动列表)