? Por qué la serialización json no funciona para objetos datetime. Como entiendo la serialización json, la idea básica para cualquier objeto puede ser llamar a la función integrada __str__
y luego urlencode el objeto que obtienes como respuesta. Pero en el caso de fecha y hora me sale el siguiente error¿Por qué la serialización json de objetos datetime en python no funciona de la caja para objetos datetime
TypeError: datetime.datetime(2012, 5, 23, 18, 38, 23, 37566) is not JSON serializable
mientras que hay una __str__
es decir, una forma de stringifying el objeto ya está disponible, pero parece que la decisión consciente de no hacerlo, ¿por qué habría que ser el caso ?
Estás entendiendo mal cómo funciona json. No tiene nada que ver con el método __str__. JSON no tiene un tipo de fecha y hora, por lo que es imposible codificar sin pérdida de tiempo una fecha en JSON, sin algún tipo de lógica especial en el extremo receptor. Por lo tanto, la biblioteca (lógicamente) hace que lo hagas tú mismo convirtiendo a una marca de tiempo Unix o cadena de fecha ISO o algo así y haciendo explícito que la conversión es necesaria. –
@TylerEaves Esto es cualquier cosa menos lógico. Es posible codificar sin pérdida de tiempo una fecha a una cadena o int, y muchos casos de uso que requieren convertir de dict, a json, a dict nuevamente sin abandonar el ecosistema de python, sin embargo, el módulo json no puede manejar este caso sin una costumbre manejador de fecha y hora ¡¿De Verdad?! Al ver la gran cantidad de preguntas sobre el tema, me gustaría decir que no estoy solo en mi incredulidad. –