Python 中使用 JSON 传输 pickle 后的数据

最近有一个奇怪的需求。。需要在两台服务器之间传输 requests 的 Session 对象,经研究可以用以下方法实现

传出

1
2
3
4
5
6
7
8
9
10
11
# from requests import Session
# s = Session()
# s.get('https://www.baidu.com')
# print(s.cookies)
import json
import pickle
import base64

cookie_jar = base64.encodebytes(pickle.dumps(s.cookies)).decode('ascii')

j = json.dumps({'cookies': cookie_jar})

传入

1
2
3
4
5
import json
import pickle
import base64

cookie_jar = pickle.loads(base64.decodebytes(json.loads(j)['cookies'].encode('ascii')))