我需要从 SharePoint 获取多个 .csv 文件。
如果我通过邮递员提出这个请求
https://mycompany.sharepoint.com/teams/a/g/_api/web/GetFolderByServerRelativeUrl('Data%20Sources\')/Files('sharepoint_test.csv')/$value
带标题
Authorization: Bearer eyJ...
Accept: application/json;odata=verbose
我得到“test_sharepoint.csv”的内容:
column a,column b,column c
32,523,88
46,34,659
25,767,78
我需要一次下载多个文件,而 SharePoint 似乎没有为其提供端点。所以使用 python 和grequests,我得到一个响应,但不是二进制数据:
>>> base_url = "https://mycompany.sharepoint.com/teams/a/g/_api/web/GetFolderByServerRelativeUrl('Data%20Sources\')/"
>>> url_1 = "Files('sharepoint_test.csv')/$value"
>>> url_2 = "Files('sharepoint_test_2.csv')/$value"
>>> allurls = [base_url + url_1, base_url + url_2]
>>> headers = {"Authorization": authtoken, "Content-Type": "application/json;odata=verbose", "Accept": "application/json;odata=verbose"}
>>> rs = (grequests.get(u, headers=headers, stream=True) for u in allurls)
>>> s = grequests.map(rs)
>>> s
[<Response [200]>, <Response [200]>]
>>> data = open(s[0], "rb").read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected str, bytes or os.PathLike object, not Response
我怎样才能真正通过 获取二进制数据grequests
?