如何转换
curl -X POST -T 'sample_data.json' -H "Content-Type: application/json" https://sample_url.com
转换成Python?具体来说,我如何为请求提供“-T”参数?
2guxujil1#
我相信你可以这样做:
import requests import json requests.post('https://sample_url.com', headers = {'Content-type': 'application/json'}, data = json.loads(open('sample_data.json').read()) }
您可以查看requests页面以了解更多详细信息。或者,要展示一个完全自包含的示例,而不必从文件中加载json,您可以执行以下操作:
import requests requests.post('https://httpbin.org/post', data = {'key':'value'}) <Response [200]>
请注意,来自请求文档:在请求中使用json参数会将标头中的Content-Type更改为application/json。因此,您可以改为执行以下操作:
json
Content-Type
application/json
r = requests.post(url, json=payload)
vlju58qv2#
curl -X POST -T 'sample_data.json' \ -H 'Content-Type: application/json' \ https://sample_url.com/
有效地等效于
curl -X POST \ -H 'Content-Type: application/json' \ -d "$(cat sample_data.json)" \ https://sample_url.com/sample_data.json
所以使用requests,它将是
requests
with open('sample_data.json') as fh: response = requests.post( "https://sample_url.com/sample_data.json", data=fh.read(), header={'Content-Type': 'application/json'} )
bfrts1fy3#
有几种方法可以做到这一点。但最好的方法是使用requests库。它还不是标准库的一部分(还没有),但它使HTTP请求变得非常直接。
$ pip install requests
或
$ conda install requests
然后
import json import requests url = r"https://sample_url.com" with open("sample_data.json", "r") as fh: data = json.load(fh) requests.post(url=url, data=data)
wgx48brx4#
最好的方法是使用Python Requests库-https://2.python-requests.org/en/master/。
import Requests import json result = requests.post(URL,json=json.loads(open('sample_data.json').read()))
requests库本身就理解如何发送JSON数据在页面的这一部分,还有更多关于如何使用表单编码的有效负载发布消息的示例-https://2.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests为了能够执行其他动词,您只需要更改请求的函数-
for a GET, requests.get(url) for a PUT, requests.put(url,data=DATA) or requests.put(url,json=JSON) for a DELETE, requests.delete(url)
和/或其他信息。
4条答案
按热度按时间2guxujil1#
我相信你可以这样做:
您可以查看requests页面以了解更多详细信息。
或者,要展示一个完全自包含的示例,而不必从文件中加载json,您可以执行以下操作:
请注意,来自请求文档:
在请求中使用
json
参数会将标头中的Content-Type
更改为application/json
。因此,您可以改为执行以下操作:
vlju58qv2#
有效地等效于
所以使用
requests
,它将是bfrts1fy3#
有几种方法可以做到这一点。但最好的方法是使用
requests
库。它还不是标准库的一部分(还没有),但它使HTTP请求变得非常直接。或
然后
wgx48brx4#
最好的方法是使用Python Requests库-https://2.python-requests.org/en/master/。
requests库本身就理解如何发送JSON数据
在页面的这一部分,还有更多关于如何使用表单编码的有效负载发布消息的示例-https://2.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests
为了能够执行其他动词,您只需要更改请求的函数-
和/或其他信息。