|
|
@@ -34,6 +34,15 @@ def _serialize_video_list(value: object) -> str | None:
|
|
|
return str(value)
|
|
|
|
|
|
|
|
|
+def _serialize_extend(value: object) -> str | None:
|
|
|
+ if value is None:
|
|
|
+ return None
|
|
|
+ if isinstance(value, (dict, list)):
|
|
|
+ return json.dumps(value, ensure_ascii=False)
|
|
|
+ raw = str(value).strip()
|
|
|
+ return raw or None
|
|
|
+
|
|
|
+
|
|
|
def _normalize_secondary_weight(value: object) -> float | None:
|
|
|
if value is None:
|
|
|
return None
|
|
|
@@ -82,7 +91,7 @@ def _fetch_partition_rows_from_primary_source(partition_dt: str) -> list[dict[st
|
|
|
`type`,
|
|
|
video_count,
|
|
|
video_list,
|
|
|
- ext_info
|
|
|
+ `extend`
|
|
|
FROM {source_table}
|
|
|
WHERE dt = '{partition_dt}'
|
|
|
"""
|
|
|
@@ -104,7 +113,7 @@ def _fetch_partition_rows_from_primary_source(partition_dt: str) -> list[dict[st
|
|
|
"demand_type": record["type"],
|
|
|
"video_count": record["video_count"],
|
|
|
"video_list": _serialize_video_list(record["video_list"]),
|
|
|
- "ext_info": record["ext_info"],
|
|
|
+ "ext_info": _serialize_extend(record["extend"]),
|
|
|
"dt": partition_dt,
|
|
|
}
|
|
|
|