fix(retro): _rows_to_dicts用dict(rec)——sqlor行是DictObject,vars()只取内部属性导致复盘素材全空壳(测试机冒烟实测)

This commit is contained in:
ymq 2026-08-31 16:37:18 +08:00
parent 38d9897a78
commit 97c7d2f368

View File

@ -30,12 +30,23 @@ def _get_db():
def _rows_to_dicts(recs, limit=200):
out = []
for r in (recs or [])[:limit]:
d = {}
for k, v in vars(r).items():
if k.startswith('_') or callable(v):
# sqlor 行是 DictObjectdict(rec) 才能取全部列vars() 只取内部属性 → 空字典,
# 2026-08-31 测试机冒烟实测project 名空壳即此因)。照抄 feature_capability._rec_to_dict。
if isinstance(r, dict):
out.append(dict(r))
continue
try:
out.append(dict(r))
continue
except (TypeError, ValueError):
pass
if hasattr(r, "to_dict"):
try:
out.append(r.to_dict())
continue
d[k] = v
out.append(d)
except Exception:
pass
out.append({})
return out