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

从复杂XML中正确提取userID、itemID及对应balance的技术问询

问题根源分析

嘿,一眼就能看出问题在哪啦——你现在用了两层嵌套循环,把所有的itemID和所有的balance强行做了全配对,这自然会产生大量重复的组合!毕竟每个<bill>节点本身就是一个完整的单元,里面同时包含了对应的<item>(带itemID)和<balance>,你不该把这俩拆开来单独遍历。

修正后的代码

直接按<bill>节点为单位遍历,在每个账单里提取对应的itemID和balance,就能保证它们一一对应了:

userid = node.findtext('./userID')
# 先获取所有的bill节点
bill_nodes = node.findall('./bill')
for bill_node in bill_nodes:
    # 在当前bill节点内找对应的itemID
    item_id = bill_node.findtext('./item/itemID')
    # 在当前bill节点内找对应的balance
    balance = bill_node.findtext('./balance')
    print(userid, item_id, balance)
运行结果验证

用你提供的XML示例运行这段代码,会得到完全符合需求的输出:

10269 423999 1.20
10269 429053 1.20
10269 423991 24.00

每个用户的每个账单都对应了正确的itemID和balance,不会再出现重复配对的问题。

内容的提问来源于stack exchange,提问作者ViciOus CircLe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:18:03