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")
Der obige Code speichert die Daten nicht in der Datei "file.json". Wenn ich schreibe print
Vor json.dumps()
, dann werden die Daten auf dem Bildschirm gedruckt. Es wird aber nicht in die Datei geschrieben.
Die Datei wird erstellt, aber beim Öffnen (über den Editor) wird nichts angezeigt. Warum?
Wie korrigiere ich das?
Antworten:
5 für die Antwort № 1Das ist nicht so json.dumps()
funktioniert. json.dumps()
gibt einen String zurück, den Sie dann mit in die Datei schreiben müssen f.write()
. Wie so:
with open(path, "w") as f:
json_str = json.dumps({"profile_info": prof_info})
f.write(json_str)
Oder, einfach benutzen json.dump()
, der genau zum Speichern von JSON-Daten in einem Dateideskriptor existiert.
with open(path, "w") as f:
json.dump({"profile_info": prof_info}, f)
0 für die Antwort № 2
Sie müssen verwenden json.dump
. json.dumps
Gibt eine Zeichenkette zurück, es wird nicht in einen Dateideskriptor geschrieben.
0 für die Antwort № 3
Einfach,
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)