2017-02-17 4 views
1

Ich bin ein Anfänger in Python und ich habe ein kleines Problem mit JSON. Im Tutorial Ich arbeite mit zwei Funktionen sind:TypeError: {1, 3} ist nicht JSON serializable

def read_json(filename): 
    data = [] 
    if os.path.isfile(filename): 
     with open(filename, "r") as f: 
      data = json.load(f) 
    return data 


def save_json(filename, data): 
    with open(filename, "w") as f: 
     json.dump(data, f) 

Aber wenn ich versuche, meine Daten zu speichern, gibt es einen Fehler bei der Rettung:

raise TypeError(repr(o) + " is not JSON serializable") 
TypeError: {1, 3} is not JSON serializable 

mir jemand helfen?

+1

Können Sie Probe json Daten veröffentlichen, die Sie schreiben, und auch die Art überprüfen (Daten), die Sie in Datei schreiben. – Himaprasoon

Antwort

1

{1, 3} ist ein set, der als der Fehler hervorhebt, kann nicht auf JSON serialisiert werden - die einzige Sammlung types in JSON sind Listen (genannt Arrays in JSON) und Wörterbücher (so genannte Objekte in JSON).

Sie werden es in eine Liste konvertieren müssen:

converted = list(my_data) 
save_json(my_filename, converted) 
+0

yup. Danke, es funktioniert. – proceder

+0

Freut mich zu hören. Wenn Sie möchten, können Sie [accept] (http://stackoverflow.com/help/someone-answers) eine Antwort, die Ihr Problem löst, indem Sie auf das Häkchen daneben klicken ... damit andere wissen, dass die Lösung funktioniert hat. –

+1

sicher. ich werde es tun. – proceder

Verwandte Themen