Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
if not PYDANTIC_V2:
encoders = getattr(obj.__config__, "json_encoders", {}) # type: ignore[attr-defined]
if custom_encoder:
- encoders.update(custom_encoder)
+ encoders = {**encoders, **custom_encoder}
obj_dict = _model_dump(
obj,
mode="json",
instance = MyModel(dt_field=safe_datetime.now())
encoded_instance = jsonable_encoder(
- instance, custom_encoder={safe_datetime: lambda o: o.isoformat()}
+ instance, custom_encoder={safe_datetime: lambda o: o.strftime("%H:%M:%S")}
)
- assert encoded_instance["dt_field"] == instance.dt_field.isoformat()
+ assert encoded_instance["dt_field"] == instance.dt_field.strftime("%H:%M:%S")
+
+ encoded_instance2 = jsonable_encoder(instance)
+ assert encoded_instance2["dt_field"] == instance.dt_field.isoformat()
def test_custom_enum_encoders():