gpt4 book ai didi

python - Python如何从XML(例如Unicode)获取列表到列表?

转载 作者:行者123 更新时间:2023-12-01 04:19:00 29 4
gpt4 key购买 nike

我在读取 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]

最佳答案

这个问题与旧问题非常相似:Convert string representation of list to list in Python

简而言之,您希望将 unicode 字符串 (u"[\n[1,2,3],\n...") 解析为python 列表文字,因此您希望在读取和解析程序时执行与 python 解释器相同的操作。

您可以使用 ast 模块来实现此目的:

import ast
a=ast.literal_eval(l)

就你的情况而言。请注意,此函数将计算任何 python 文字,因此如果您只是将 "1" 放入 xml 中,结果 a 将是数字1

请参阅documentation for ast.literal_evel以获得更多解释。

关于python - Python如何从XML(例如Unicode)获取列表到列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33942489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com