【发布时间】:2015-11-26 15:45:43
【问题描述】:
我在阅读 XML 时遇到问题。我想得到一个二维数组。但是,当我从 XML 获取数据时,数据类型是 Unicode。因此,我键入以使用 list()。然而,结果并不是我想要的。我可以使用其他方式获取 2D 列表吗?
如何删除 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变量中的文本。 -
我认为
a=eval(l)应该可以工作 -
eval应谨慎使用,因为它会执行任何代码,而不仅仅是返回一个列表。