code: def json_iso_dttm_ser(obj, pessimistic: Optional[bool] = False):
      
      val = base_json_conv(obj)
      if val is not None:
          return val
      if isinstance(obj, (datetime, date, time, pd.Timestamp)):
          obj = obj.isoformat()
      else:
          if pessimistic:
              return 'Unserializable [{}]'.format(type(obj))
          else:
              raise TypeError(
                  'Unserializable object {} of type {}'.format(obj, type(obj)))
      return obj
docs: json serializer that deals with dates
  
      >>> dttm = datetime(1970, 1, 1)
      >>> json.dumps({'dttm': dttm}, default=json_iso_dttm_ser)
      '{"dttm": "1970-01-01T00:00:00"}'