我在阅读XML时遇到问题。我想获得一个2D数组。但是,当我从XML获取数据时,数据类型是Unicode。因此,我输入list()。但是,结果不是我想要的。我可以用另一种方式获得2D列表吗?Python如何从XML等列表中获取列表?
如何删除u,\ n,\ t并获得正确答案?谢谢。
abc.xml
<text>
<item id="1">
[[2, 2, 1],
[1, 0, 0],
[1, 0, 0]]
</item>
</text>
PYTHON:
import xml.dom.minidom
dom = xml.dom.minidom.parse('abc.xml')
bb = dom.getElementsByTagName('item')
b=bb[0]
l= b.firstChild.data
print l
a=list(l)
print a
输出:
[[2, 2, 1]
[1, 0, 0]
[1, 0, 0]]
[u'\n', u' ', u' ', u' ', u' ', u'\t', u'\t', u'[', u'\n', u' ', u' ', u' ', u' ', u'\t', u'\t', u'\t', u'[', u'2', u',', u' ', u'2', u',', u' ', u'1', u']', u'\n', u' ', u' ', u' ', u' ', u'\t', u'\t', u'\t', u'[', u'1', u',', u' ', u'0', u',', u' ', u'0', u']', u' ', u'\n', u' ', u' ', u' ', u' ', u'\t', u'\t', u'\t', u'[', u'1', u',', u' ', u'0', u',', u' ', u'0', u']', u' ', u'\n', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u' ', u'\n', u' ', u' ', u' ', u' ', u'\t', u'\t', u']', u'\n', u' ', u' ', u' ', u' ', u'\t']
[Finished in 0.1s]
你将不得不在你自己的'l'变量中解析文本。 – furas
我认为'a = eval(l)'应该可以工作 –
'eval'应该用于极端的预防措施,因为它会优于任何代码,而不仅仅是返回一个列表。 – MartinStettner