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

如何将requests返回的XML数据转换为可遍历对象提取指定字段?

处理XML数据提取指定字段的方法

以下是几种将你获取的XML数据转换为可遍历对象(字典列表、DataFrame)并提取NAME、VOL、LAST、MATCHED字段的实用方法:

方法一:用Python标准库解析为字典列表

使用xml.etree.ElementTree(Python内置库)解析XML,遍历节点提取目标属性:

import xml.etree.ElementTree as ET

# 替换为你通过requests获取的XML字符串
xml_content = '''<info>
 <stats vol="545080705" orders="718021755"/>
  <symbols timestamp="2022-09-08 19:56:37" count="11394">
   <symbol name="TQQQ" vol="8700394" last="28.23" matched="8382339" />
   <symbol name="SPY" vol="8571092" last="401.00" matched="8209174" />
   <symbol name="SQQQ" vol="7091770" last="44.39" matched="6734334" />
   <symbol name="AVCT" vol="6493626" last="0.17" matched="6469576" />
   <symbol name="UVXY" vol="6158364" last="9.42" matched="6142800" />
  </symbols>
</info>'''

# 解析XML字符串
root = ET.fromstring(xml_content)
# 定位所有<symbol>节点
symbol_elements = root.findall('.//symbol')

# 提取目标字段到字典列表
symbol_list = []
for elem in symbol_elements:
    symbol_list.append({
        'NAME': elem.attrib['name'],
        'VOL': int(elem.attrib['vol']),
        'LAST': float(elem.attrib['last']),
        'MATCHED': int(elem.attrib['matched'])
    })

# 遍历使用数据
for item in symbol_list:
    print(f"{item['NAME']}: 成交量{item['VOL']}, 最新价{item['LAST']}")

方法二:转换为Pandas DataFrame

如果需要进行数据分析,直接转为DataFrame更方便:

方式1:基于字典列表生成

import pandas as pd

df = pd.DataFrame(symbol_list)
# 查看数据
print(df.head())

方式2:用Pandas直接读取XML(Pandas 1.3.0及以上版本支持)

import pandas as pd

# 直接从XML字符串读取指定节点和属性
df = pd.read_xml(
    xml_content,
    xpath='.//symbol',
    attrs=['name', 'vol', 'last', 'matched']
)
# 重命名列并转换数据类型
df = df.rename(columns={
    'name': 'NAME',
    'vol': 'VOL',
    'last': 'LAST',
    'matched': 'MATCHED'
}).astype({
    'VOL': int,
    'LAST': float,
    'MATCHED': int
})

# 操作DataFrame,比如筛选成交量大于700万的标的
filtered_df = df[df['VOL'] > 7000000]
print(filtered_df)

内容的提问来源于stack exchange,提问作者Landon Statis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:48:25