Avatar ·

TypeError: Object of type is not JSON serializable

📁 python

Estou tentando escrever em json um objeto da classe Person assim:

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()

Recebo o erro:

TypeError: Object of type 'Person' is not JSON serializab
Avatar ·

Eu não diria que é uma prática ruim em si, mas é preciso abordar isso com inteligência, entender quais são os riscos e não usar isso sem pensar.

As razões para limitar essa prática, se pensarmos bem, me parecem as seguintes:

  1. Explícito é melhor que implícito. Você perde o controle sobre quando exatamente esse código será executado, e isso pode ser importante. Módulos em Python podem ser importados não apenas no nível superior, mas também dentro de uma função ou método, o que significa que o código do módulo será executado não durante a inicialização da aplicação, mas durante a execução dessa função e da instrução import dentro dela. Além disso, pode haver mais de uma função que importa o módulo, e qual delas e quando é executada primeiro em sua enorme aplicação pode não ser nada óbvio.

Faça login para deixar uma resposta

Blogs