Foros del Web » Programando para Internet » Python »

datetime.date is not json serializable

Estas en el tema de datetime.date is not json serializable en el foro de Python en Foros del Web. Hola, Estoy teniendo un problema a la hora de devolver json mediante un webservice. Mi script lo que hace es conectarse a una BD MySQL, ...
  #1 (permalink)  
Antiguo 18/02/2016, 06:02
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta datetime.date is not json serializable

Hola,

Estoy teniendo un problema a la hora de devolver json mediante un webservice.

Mi script lo que hace es conectarse a una BD MySQL, hacer una consulta, guardar el resultado en un diccionario python y luego convertir este diccionario a json (json.dumps(results, ensure_ascii=False))

Todo es correcto, el webservice me devuelve los json. Sin embargo, cuando se encuentra con una fecha no es capaz de convertirla y me devuelve el error:

datetime.date is not json serializable.

He buscado info pero no me ha quedado claro como hacerlo. Si alguien sabe resolverlo, me sería de gran ayuda.

Mi código:

Código:
mysqldb = get_mysql_db()
		cursor = mysqldb.cursor()
		# sentencia SQL
		cursor.execute("SELECT titulo, url from content_medios")
		# Se obtienen los nombres de las columnas
		columns = [column[0] for column in cursor.description]
		
		# Se crea el diccionario
		results = []
		for row in cursor.fetchall():
			results.append(dict(zip(columns, row)))

		jsonarray = json.dumps(results, ensure_ascii=False)
		return jsonarray

		mysqldb.close()
Muchas gracias!
  #2 (permalink)  
Antiguo 20/02/2016, 18:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: datetime.date is not json serializable

Y que formato tendrían las fechas?
No has tratado de pasarlas antes a un string o un int?

Etiquetas: datetime, json, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.