2017-02-24 4 views
1

Ich habe als Ausgabe von meinem Python-Skript ein JSon-Format und ich möchte den JSon in eine Datei schreiben.Python: JSon Ausgabe in eine Datei

Ich benutze

df_json.to_json(orient='records') 

with open('JSONData.json', 'w') as f: 
    json.dump(df_json, f) 

Ich habe folgende Fehlermeldung:

raise TypeError(repr(o) + " is not JSON serializable") 

[1746 rows x 2 columns] is not JSON serializable 

Ich weiß nicht, was ich falsch mache.

Mein JSon Ausgang ist wie folgt:

[ 
    { 
    "id": 1, 
    "results": [ 
     1, 
     2, 
     3 

    ] 
    }, 
    { 
    "id": 558599, 
    "results": [ 
     4, 
     5, 
     6 
    ] 
    } 
] 

Vielen Dank im Voraus.

Antwort

2

Sie rufen df_json.to_json(orient='records'), aber Sie verwenden nicht die Ergebnisse. Objekt wird nicht selbst zu einem jsonisierbaren Objekt mutieren.

Serialisierung das ursprüngliche Objekt offensichtlich nicht funktioniert (oder es wäre kein to_json Methode drauf sein)

Da die Zeichenfolge bereits json ist, brauchen Sie nicht einmal das json Modul (oder json würde versuchen, den Zeichenfolge serialisiert wieder, was nicht ist, was Sie wollen): gerade tun:

f.write(df_json.to_json(orient='records')) 
+0

Dank für Ihre Antwort dankt, habe ich verwendet, um diesen, aber ich erhalte einen seltsamen Ausgang mit einem Schrägstrich (\) vor jedem doppelte Anführungszeichen (") – Amy21

+0

Die Ausgabe in meiner Datei ist ' "[ { \" id \ ": 1, \" Ergebnisse \ ": [ 1, 2, ] }]"' – Amy21

+0

sorry, ich war falsch vorhin. Es ist einfacher als das. Bearbeitet meine Antwort ... –