You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从给定XML输出中提取suggestion的data数据?

提取字典中所有suggestion的@data值

你提供的是XML解析后生成的字典结构,要提取所有@data值可以用以下几种Python实现方式:

1. 简洁的列表推导式

直接通过层级索引遍历列表,提取目标值:

response_data = {
    'toplevel': {
        'CompleteSuggestion': [
            {'suggestion': {'@data': 'cola cao'}},
            {'suggestion': {'@data': 'cola cao wikipedia'}},
            {'suggestion': {'@data': 'cola cao kaufen'}},
            {'suggestion': {'@data': 'cola cao koffein'}},
            {'suggestion': {'@data': 'cola cao turbo'}},
            {'suggestion': {'@data': 'cola cao kaufen schweiz'}},
            {'suggestion': {'@data': 'cola cao energy'}},
            {'suggestion': {'@data': 'cola cao original'}},
            {'suggestion': {'@data': 'cola cao rewe'}},
            {'suggestion': {'@data': 'cola cao noir'}}
        ]
    }
}

# 提取所有@data值
suggestions = [item['suggestion']['@data'] for item in response_data['toplevel']['CompleteSuggestion']]
print(suggestions)

执行后输出:

['cola cao', 'cola cao wikipedia', 'cola cao kaufen', 'cola cao koffein', 'cola cao turbo', 'cola cao kaufen schweiz', 'cola cao energy', 'cola cao original', 'cola cao rewe', 'cola cao noir']

2. 普通循环遍历

如果需要更直观的逻辑,可使用for循环逐个提取:

suggestions = []
for item in response_data['toplevel']['CompleteSuggestion']:
    suggestions.append(item['suggestion']['@data'])
print(suggestions)

3. 带异常处理的稳健版本

如果担心数据结构可能存在缺失键的情况,用get()方法避免报错:

suggestions = []
# 逐层获取,不存在则返回空字典/空列表
for item in response_data.get('toplevel', {}).get('CompleteSuggestion', []):
    data = item.get('suggestion', {}).get('@data')
    if data:
        suggestions.append(data)
print(suggestions)

内容的提问来源于stack exchange,提问作者Philipp Schmid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:04:59