python-3.x - 使用文件向 Common Data Service 发出 PATCH 方法请求
问题描述
我正在尝试创建一个 Python 脚本,它可以使用 PATCH 方法将文件上传到 MS 的公共数据服务中。我成功地使用简单数据进行了 GET、POST、PATCH 和 DELETE 调用,但到目前为止还无法对其进行配置,以便我可以上传文件。
我一直在使用Python 的 Requests 库和requests.patch函数来尝试更新数据。我正在尝试将 .csv 文件上传到该字段中,我正在上传的文件的文件大小为 1kb。
如果我通过内置的数据接口直接将数据上传到公共数据服务中,我的浏览器能够正确地进行 PATCH 调用。我试图尽可能地复制调用,但成功率为零。
公共数据服务中的文件字段
网络浏览器中的 PATCH 调用
使用文件向 Microsoft 的通用数据服务发出 PATCH 请求的正确方法是什么?
解决方案
我的请求中的网址出错 - 我错过了将数据上传到的字段
Incorrect URL:
https://90g9j3gf.crm4.dynamics.com/api/data/v9.0/test_entity(34cd854c-1175-4778-bf95-e1ce12dea3b0)
Corrected URL:
https://90g9j3gf.crm4.dynamics.com/api/data/v9.0/test_entity(34cd854c-1175-4778-bf95-e1ce12dea3b0)/test_field
我用来发出请求的代码:
Import requests
http_headers = {
'Authorization': 'Bearer ' + token['access_token'],
'Content-Type': 'application/octet-stream',
'x-ms-file-name': 'test.csv'
}
filedata = open("project-folder\\test.csv", "rb")
patch_req = requests.patch(
url, # My URL is defined elsewhere
headers=http_headers,
data=filedata
)
这现在对我来说可以正常工作
推荐阅读
- arrays - 多维数组的VBA递归排列
- angular - Angular 6 - i18n 与 ngx-translate
- c# - Paypal IPN 可与模拟器一起使用,但不能与沙盒一起使用 - C# ASP.NET
- python - sklearn.pipeline 是否支持分支?
- ios - Phonegap cordova.plugins.barcodeScanner.scan 在 ipad 上不起作用
- postgresql - 将一个常数乘以每个数组元素
- pytest - PyTest 中的端到端测试
- python - 使 python 脚本在启动时自行启动
- c# - 在循环中清除值的最佳方法?
- python - 从 DataFrame 行中选择变量组合