From c7d8667094b9a6b55948137a48defc1a2537282d Mon Sep 17 00:00:00 2001 From: Mani Krishna Date: Thu, 18 Sep 2025 22:59:24 +0100 Subject: [PATCH] BUG: Avoid ValueError when serializing lists/arrays in BigQuery tool --- .../data-science/data_science/sub_agents/bigquery/tools.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/agents/data-science/data_science/sub_agents/bigquery/tools.py b/python/agents/data-science/data_science/sub_agents/bigquery/tools.py index 4a7f88256..258c5232d 100644 --- a/python/agents/data-science/data_science/sub_agents/bigquery/tools.py +++ b/python/agents/data-science/data_science/sub_agents/bigquery/tools.py @@ -42,6 +42,9 @@ def _serialize_value_for_sql(value): """Serializes a Python value from a pandas DataFrame into a BigQuery SQL literal.""" + if isinstance(value, (list, np.ndarray)): + # Format arrays. + return f"[{', '.join(_serialize_value_for_sql(v) for v in value)}]" if pd.isna(value): return "NULL" if isinstance(value, str): @@ -52,9 +55,6 @@ def _serialize_value_for_sql(value): if isinstance(value, (datetime.datetime, datetime.date, pd.Timestamp)): # Timestamps and datetimes need to be quoted. return f"'{value}'" - if isinstance(value, (list, np.ndarray)): - # Format arrays. - return f"[{', '.join(_serialize_value_for_sql(v) for v in value)}]" if isinstance(value, dict): # For STRUCT, BQ expects ('val1', 'val2', ...). # The values() order from the dataframe should match the column order.