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): def _rows_to_dicts(recs, limit=200):
out = [] out = []
for r in (recs or [])[:limit]: for r in (recs or [])[:limit]:
d = {} # sqlor 行是 DictObject:dict(rec) 才能取全部列(vars() 只取内部属性 → 空字典,
for k, v in vars(r).items(): # 2026-08-31 测试机冒烟实测:project 名空壳即此因)。照抄 feature_capability._rec_to_dict。
if k.startswith('_') or callable(v): 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 continue
d[k] = v except Exception:
out.append(d) pass
out.append({})
return out return out