-1
votes

Flacon datetime.date n'est pas json sérialisable

J'essaie de retourner une liste de dictionnaires dans le cadre d'une demande d'obtention. J'appelle la fonction ci-dessous. xxx

sélectionné_data est comme xxx

mais, je reçois l'erreur ci-dessous

TypeError (REP (o) + "n'est pas JSON Serializable") TypeError: DateTime.Date (2019, 1, 15) n'est pas JSON SERIALISABLE

J'ai essayé d'utiliser json.dumps comme Ce débordement de pile thread suggère mais obtient toujours la même erreur.

Toute aide est appréciée.


2 commentaires

Avant jsonifty () , transformer datetime.date à chaîne ou horodatage .


Hey, fini par faire ça. Merci d'avoir répondu.


3 Réponses :


2
votes

Vous devez réaliser un client JSONENCODER

import json
from datetime import date
from datetime import datetime
class JsonExtendEncoder(json.JSONEncoder):
    """
        This class provide an extension to json serialization for datetime/date.
    """
    def default(self, o):
        """
            provide a interface for datetime/date
        """
        if isinstance(o, datetime):
            return o.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(o, date):
            return o.strftime('%Y-%m-%d')
        else:
            return json.JSONEncoder.default(self, o)
if __name__ == '__main__':
    d = {'now': datetime.now(), 'today': date.today(), 'i': 100}
    ds = json.dumps(d, cls=JsonExtendEncoder)
    print "ds type:", type(ds), "ds:", ds
    l = json.loads(ds)


1 commentaires

C'est une bonne idée d'utiliser isoformat au lieu de StrfTime , car il s'agit d'une norme Web que beaucoup de bibliothèques JavaScript comme.



1
votes

Essayez l'un des éléments suivants

selected_data["date"] = selected_data["date"].isoformat()
selected_data["date"] = selected_data["date"].strftime("%Y-%m-%d %H:%M:%S:%f")
selected_data["date"] = str(selected_data["date"])


1 commentaires

Ceci a fonctionné, sélectionné_data ["date"] = sélectionné_data ["date"]. ISOFORMAT (). Accepter la réponse, merci



0
votes

Voici mon approche de cela. Pour les utilisateurs reposants de la fiole et du flacon xxx


0 commentaires