TypeError: Object of type is not JSON serializable
📁 Sujets avancés sur Python
J'essaie d'écrire un objet de classe Person en json comme ceci :
def postUserToJson(user): fileName = str(user.FullName) + "" - "" + str(user.Id) file = open(pathUsers + fileName + "".json"", ""w"", encoding=""utf-8"") json.dump(user, file, ensure_ascii=False) file.close()J'obtiens l'erreur :
TypeError: Object of type 'Person' is not JSON serializable Je ne dirais pas que c'est une mauvaise pratique en soi, il faut simplement aborder cette question avec intelligence, comprendre ce qu'elle implique, et ne pas l'utiliser sans réfléchir.
Les raisons de limiter cette pratique, si l'on y réfléchit, me semblent être les suivantes :
Explicite vaut mieux qu'implicite. Vous perdez le contrôle sur le moment exact où ce code sera exécuté, ce qui peut s'avérer important. Les modules en Python peuvent être importés non seulement au niveau supérieur, mais aussi à l'intérieur d'une fonction ou d'une méthode, ce qui signifie que le code du module sera exécuté non pas au démarrage de l'application, mais lors de l'appel de cette fonction et de l'exécution de l'instruction
importqu'elle contient. De plus, il peut y avoir plusieurs fonctions important le module, et savoir laquelle d'entre elles et quand elle est exécutée en premier dans votre immense application peut être loin d'être évident.
Connectez-vous pour laisser une réponse