#7618·OpenBB

SEC 13F-HR: 空申报 (持有量为零) 在权重计算时出现 ValidationError 错误

作者: RadioOrc创建于 2026年7月31日更新于 2026年7月31日

[Bug] SEC 13F-HR: empty filings (zero holdings) crash with ValidationError on weight

问题描述

obb.equity.ownership.form_13f (提供者 sec) 为任何 13F-HR 表单 (没有可报告的持仓) 都会引发 pydantic ValidationError。退出所有持仓的经理仍然需要提交,而且 EDGAR 要求信息表中至少包含一行,因此这些提交包含一个占位符项(nameOfIssuer=NAcusip=000000000value=0)。

ValidationError: 1 个验证错误为 SecForm13FHRData
weight
  输入应为有效数字 [类型=float_type,输入值=None,输入类型=NoneType]

根本原因

openbb_sec/utils/parse_13f.py (parse_13f_hr, ~L223):

total_value = df.value.sum()
df["weight"] = round(df.value.astype(float) / total_value, 6)

对于空提交,total_value == 0,因此除法结果为 0/0 = NaN。随后的 .replace({nan: None, "--": None}) 将其转换为 None,而 SecForm13FHRDataopenbb_sec/models/form_13FHR.py (~L31) 中声明 weight: float(不是可选项),因此验证失败,整个获取操作失败。

内容来源: OpenBB-finance/OpenBB