/ / json.dumps () não funciona - json, python-2.7

json.dumps () não está funcionando - json, python-2.7

import json

def json_serialize(name, ftype, path):

prof_info = []

prof_info.append({
"profile_name": name,
"filter_type": ftype
})

with open(path, "w") as f:
json.dumps({"profile_info": prof_info}, f)

json_serialize(profile_name, filter_type, "/home/file.json")

O código acima não despeja os dados no arquivo "file.json". Quando escrevo print antes json.dumps(), os dados serão impressos na tela. Mas não é despejado no arquivo.

O arquivo é criado, mas ao abri-lo (usando o bloco de notas), não há nada. Por quê?

Como corrigir isso?

Respostas:

5 para resposta № 1

Não é assim que json.dumps() trabalho. json.dumps() retorna uma string, que você deve gravar no arquivo usando f.write(). Igual a:

with open(path, "w") as f:
json_str = json.dumps({"profile_info": prof_info})
f.write(json_str)

Ou, apenas use json.dump(), que existe exatamente com a finalidade de despejar dados JSON em um descritor de arquivo.

with open(path, "w") as f:
json.dump({"profile_info": prof_info}, f)

0 para resposta № 2

Você precisa usar json.dump. json.dumps retorna uma string, não grava em um descritor de arquivo.


0 para resposta № 3

Simplesmente,

import json

my_list = range(1,10) # a list from 1 to 10

with open("theJsonFile.json", "w") as file_descriptor:

json.dump(my_list, file_descriptor)