2017-08-16 3 views
0
with open('data', 'w') as f: 
    pickle.dumps({'foo':111},f) 

Ergebnisse inBeize Fehler - integer erforderlich

an integer is required (got type _io.TextIOWrapper) 

Wie kann ich dieses Problem beheben?

Ich bin mir ziemlich sicher An integer is required? open() wurde nicht zuvor aufgerufen. Python-Version ist 3.6.2

+1

[Zweites Argument für 'Dumps' ist _' Protokoll'_] (https://docs.python.org/3/library/pickle.html#pickle.dumps). Meintest du pickle.dumps ({'foo': 111}, f) '? –

Antwort

1

pickle.dumpsobj in einen String-Dumps, die es zurückgibt. Um in eine Datei zu schreiben, möchten Sie wahrscheinlich pickle.dump (ohne die s) verwenden.

with open('data', 'wb') as f: 
    pickle.dump({'foo':111}, f) 

Zusätzlich sollten Sie die Datei auch im Binär-Modus öffnen, weil pickle.dump Binärdaten schreiben.

+0

Ich habe gerade die Antwort bearbeitet, um den Binärmodus beim Öffnen der Datei zu erwähnen. –