0

我正在使用 Python 将 PDF 文件从 OneDrive 下载到本地文件夹,并在下载文件后将文件移动到 OneDrive 中的不同文件夹。

我可以将文件从 OneDrive 下载到本地文件夹,但是在尝试将文件移动(PATCH)到另一个 OneDrive 文件夹时收到 400 响应。

这是我下载文件的成功代码:

download_url = 'https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/content'

headers = {'Authorization': 'Bearer ' + json_response['access_token']}

download_url_data = requests.get(download_url, headers=headers)

with open('/Users/Name/Folder/file_name, 'wb') as f:

     f.write(download_url_data.content)

这是我移动文件的不成功 PATCH 请求:

move_url = 'https://graph.microsoft.com/v1.0/me/drive/items/{item-id}

move_headers = {'Authorization': 'Bearer ' + json_response['access_token'],
           'Content-Type' : 'application/json'}

move_body = {'parentReference' : {'id' : '01EV3NG2F6Y2GOVW7775BZO354PUSELRRZ'}}

move_file = requests.patch(move_url, headers=move_headers, data=move_body)

return move_file.status_code

我已按照此处的文档https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0&tabs=http尝试了不同的 parentReference id,但没有运气。

请帮忙!干杯。

4

1 回答 1

0

您得到的响应是什么(400 状态代码旁边的实际内容)?

我相信requests.patch应该将它的数据作为字符串接收,而不是字典(json)。

尝试:

move_file = requests.patch(move_url, headers=move_headers, data=json.dumps(move_body))

当然不要忘记import json

于 2020-03-10T12:33:48.737 回答