Pandas `to_sql` con JSON devuelve un error, ¿hay forma de evitar hacer un `json.dumps`?

hola gente! estoy teniendo problemas al insertar JSON en una base de datos PostgreSQL con sqlalchemy. este código:

df = pd.DataFrame([{"index": 1, "properties": {"a": 1, "b": 2}}])
df.to_sql("_test_table", con, if_exists="replace")

me da este error:

psycopg2.ProgrammingError: can't adapt type 'dict'

veo que haciendo psycopg2.extensions.register_adapter(dict, psycopg2.extras.Json) se resuelve el problema, pero el tipo de la columna es text, cuando pensaba que lo ideal era almacenarlo como json. ¿me estoy perdiendo algo?

también hice la pregunta en Stack Overflow sql - pandas to_sql with dict raises "can't adapt type 'dict'", is there a way to avoid `dumps`? - Stack Overflow

Efectivamente la solución era trivial pero por algún motivo no la estaba encontrando: había que usar el parámetro dtype de .to_sql:

df.to_sql(
  "_test_table",
  dwh_con,
  if_exists="replace",
  dtype={"properties": sqlalchemy.types.JSON},  # <----
)