Crossin的编程教室
标题:
请问如何将requests返回的Response object存储在本地, 供之后取用?
[打印本页]
作者:
anyone
时间:
2020-10-21 23:19
标题:
请问如何将requests返回的Response object存储在本地, 供之后取用?
通常我使用r=requests.get()后
都会将返回的r.text存储在本地, 供之后解析需要.
其实就是简单的文本存储.
但我好奇的是,
可否直接将r(也就是requests.get返回的response object)直接存在本地?
我尝试使用with open(file, 'wb') as f 这种方式,
但是读取的时候, 使用with open(file, 'rb") as f 却将读取的内容变成了byte, 就不是response obj了.
不知道python是不是能直接存储对象为本地文件, 之后读取后仍然是对象?
感谢.
作者:
crossin先生
时间:
2020-10-22 12:35
看下 pickle 库
作者:
anyone
时间:
2020-10-22 13:40
感谢crossin, 我其实尝试过pickle, 如果不涉及到with open的磁盘读写, pickle似乎没有问题.
但是如果遇到磁盘读写, 并用到了'rb'这样的方式, 被读取的数据就变成了byte, 之后再用pickle处理也无法还原出object了, 而是byte了.
所以我想问题也许出现在with open的语句中?
作者:
crossin先生
时间:
2020-10-23 12:45
rb 没问题,pickle本就是处理成二进制流,读出来的bytes你要在通过pickle还原的。再看看网上例子是怎么写的
import pickle
import requests
r = requests.get('https://www.baidu.com')
print(r.text[:100])
path = 'test-pickle.dat'
f = open(path, 'wb')
pickle.dump(r, f)
f.close()
print('============')
f1 = open(path, 'rb')
r1 = pickle.load(f1)
print(r1.text[:100])
复制代码
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/)
Powered by Discuz! X2.5