在Python中很难使用XML字典

2024-07-07 06:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现解析此XML很困难:

<menuItems>
    <menuItem>
        <text>Auto 4-spd, 6 cyl, 3.8 L, 3.8N</text>
        <value>14864</value>
    </menuItem>
    <menuItem>
        <text>Auto 4-spd, 8 cyl, 4.6 L</text>
        <value>14866</value>
    </menuItem>
    <menuItem>
        <text>Man 5-spd, 6 cyl, 3.8 L</text>
        <value>14865</value>
    </menuItem>
</menuItems>

我是这样做的:

list = []
response = et.XML(urllib.request.urlopen(url).read())
for i, child in enumerate(response):
    for subchild in child:
        lista.append({subchild.tag : subchild.text})

因此,当我逐项打印列表时,我会收到以下信息:

{'text': 'Auto 4-spd, 6 cyl, 3.8 L, 3.8N'}
{'value': '14864'}
{'text': 'Auto 4-spd, 8 cyl, 4.6 L'}
{'value': '14866'}
{'text': 'Man 5-spd, 6 cyl, 3.8 L'}
{'value': '14865'}

相反,我希望收到这样的东西:

{'Auto 4-spd, 6 cyl, 3.8 L, 3.8N': '14864'}
{'Auto 4-spd, 8 cyl, 4.6 L': '14866'}
{'Man 5-spd, 6 cyl, 3.8 L': '14865'}

Tags: textinchildforautovalueresponsexml
1条回答
网友
1楼 · 发布于 2024-07-07 06:44:15
lista = []
response = et.XML(xml)
for i, child in enumerate(response):
    text = child.find('text').text
    value = child.find('value').text
    lista.append({text: value})

相关问题 更多 >