PershareIndex表取不到数据
financial_data = xtdata.get_financial_data(ashare_list, table_list=['PershareIndex'], start_time='', end_time='', report_type='report_time')
代码如上。
取到的数据全是空的,但是其他财务表都有数据,我确认已经全部下载到本地了
'603888.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'603122.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'688252.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'603156.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'600246.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'603860.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'605287.SH': {'PershareIndex': Empty DataFrame
Columns: []
Index: []},
'600232.SH': {'PershareIndex': Empty DataFrame
Columns: []
问题描述
解决方案
在 QMT 平台中获取财务数据时,如果遇到 PershareIndex 表返回 Empty DataFrame 而其他表正常的情况,通常是因为表名的大小写不正确导致的。
问题原因
QMT 的财务数据表名是严格区分大小写的。根据 QMT 官方 API 文档,主要指标表的标准英文表名应为全大写:PERSHAREINDEX。您在代码中使用了驼峰命名 PershareIndex,导致底层接口无法正确匹配到本地数据库中的表,从而返回空数据。
解决方法
请将 table_list 参数中的表名改为全大写 PERSHAREINDEX。
正确的代码示例:
# 将 'PershareIndex' 修改为全大写 'PERSHAREINDEX'
financial_data = xtdata.get_financial_data(
ashare_list,
table_list=['PERSHAREINDEX'],
start_time='',
end_time='',
report_type='report_time'
)
print(financial_data)
附:QMT 常用财务数据表名对照(必须全大写)
为了避免类似问题,请在调用时参考以下标准表名:
- 资产负债表:
ASHAREBALANCESHEET - 利润表:
ASHAREINCOME - 现金流量表:
ASHARECASHFLOW - 股本表:
CAPITALSTRUCTURE - 主要指标:
PERSHAREINDEX
其他排查建议
如果修改为全大写后仍然取不到数据,请检查以下几点:
- 数据补充是否完整:在 QMT 终端的【数据管理】-【补充数据】中,确保勾选了“财务数据”并完成了下载。
- 字段名是否正确:如果您使用了
field_list参数指定字段,请确保字段名与文档一致(如s_fa_eps_basic代表基本每股收益)。 - 时间范围:如果指定了
start_time和end_time,请确保该时间段内目标股票确实发布了财报。