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")
Le code ci-dessus ne "vide pas les données dans le fichier" file.json ". Quand j'écris print
avant json.dumps()
, les données sont alors imprimées à l'écran. Mais il ne sera pas vidé dans le fichier.
Le fichier est créé mais en l'ouvrant (à l'aide du bloc-notes), il n'y a rien. Pourquoi?
Comment le corriger?
Réponses:
5 pour la réponse № 1Ce n'est pas comment json.dumps()
travaux. json.dumps()
retourne une chaîne, que vous devez ensuite écrire dans le fichier en utilisant f.write()
. Ainsi:
with open(path, "w") as f:
json_str = json.dumps({"profile_info": prof_info})
f.write(json_str)
Ou simplement utiliser json.dump()
, qui existe exactement dans le but de transférer des données JSON dans un descripteur de fichier.
with open(path, "w") as f:
json.dump({"profile_info": prof_info}, f)
0 pour la réponse № 2
Vous devez utiliser json.dump
. json.dumps
renvoie une chaîne, il n’écrit pas dans un descripteur de fichier.
0 pour la réponse № 3
Simplement,
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)