Olá, tudo bem?
Estou tentando criar uma função para salvar dados em um arquivo json no python e não to conseguindo fazer isso sem que os dados anteriores sejam substituídos pelos novos (quero que os antigos permaneçam e que os novos sejam adicionados logo depois).
Também não consigo manter os dados antigos junto com os novos sem que o json se torne inválido, já que o modo “a” não adiciona vírgula após o primeiro objeto antes de adicionar o novo…
Estive tentando fazer como eu vi em alguns lugares: carregar o arquivo json, adicionar o conteúdo novo e salvar ele de novo no arquivo, mas não estou conseguindo construir a função sem que dê erro.
a minha função está assim:
def salvar_dados(nomedojson, file):
if not isfile(nomedojson): # Verifica se o arquivo já existe, se não existir ele vai criar
with open(nomedojson, "w", encoding="utf-8") as dados:
salvando = json.dump(file, dados, indent=2, separators=(",", ": "), sort_keys=True)
return salvando
else: # condição que atesta que o arquivo já existe e só precisa ser atualizado
with open(nomedojson, "r+", encoding="utf-8") as dados:
carregando = json.load(dados) # comando para carregar o arquivo existente
atualizando = carregando.update(file) # comando para supostamente atualizar o conteúdo
salvando = json.dump(atualizando, dados, indent=2, separators=(",", ": "), sort_keys=True)
return salvando
E aparece o seguinte erro:
Já faz 3 dias que tento resolver esse problema, estou ficando sem ideias do que testar… Se alguém puder ajudar eu agradeço!