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

結果泡菜錯誤 - 整數需要

an integer is required (got type _io.TextIOWrapper) 

我該如何解決這個問題?

我很肯定An integer is required? open()事先沒有被調用。 Python版本是3.6.2

+1

[dumps'的第二個參數是_'protocol'_](https://docs.python.org/3/library/pickle.html#pickle.dumps)。你是不是指'pickle.dumps({'foo':111},f)'? –

回答

1

pickle.dumps轉儲obj到它返回的字符串中。爲了寫入文件,您可能需要使用pickle.dump(不含s)。

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

另外,你也應該以二進制模式打開文件,因爲pickle.dump會寫二進制數據。

+0

我剛剛編輯的答案提到打開文件時的二進制模式。 –