Python: pickle.load 中的 EOF 错误

Python: EOF error in pickle.load

我正在学习教程并编写代码以使用 pickle 存储和检索 cookie

import requests
import pickle
def save_cookies(cookies, filename):
        with open(filename, 'wb') as f:
                pickle.dump(cookies, f)

def load_cookies(filename):
        with open(filename, 'rb') as f:
                return pickle.load(f)


url = 'http://xxxxxxxxxxxxxx/here'
data = {'value': 50, 'username': 'shreyUsr', 'password': 'pass'}
r = requests.post(url, data, cookies=load_cookies('cookie_store.dat'))
save_cookies(r.cookies, 'cookie_store.dat')

print("CLIENT SIDE: Status Code is " + str(r.status_code) + "Reason is " + str(r.reason) )
print("SERVER SIDE: Response is " + str(r.text))

运行 代码给出以下错误:

File "./cookieComm.py", line 15, in <module>
    r = requests.post(url, data, cookies=load_cookies('cookie_store.dat'))
  File "./cookieComm.py", line 10, in load_cookies
    return pickle.load(f)
  File "/usr/lib/python2.7/pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "/usr/lib/python2.7/pickle.py", line 858, in load
    dispatch[key](self)
  File "/usr/lib/python2.7/pickle.py", line 880, in load_eof
    raise EOFError
EOFError

请指教哪里出了问题。

从外观上看,您的 cookie_store.dat 文件当前是空的,因为您正尝试在保存 cookie 之前加载以下行:

r = requests.post(url, data, cookies=load_cookies('cookie_store.dat'))
save_cookies(r.cookies, 'cookie_store.dat')