import requests
request.post(url, data, json, kwargs) # post请求格式 request.get(url, params, kwargs) # 对比get请求
表單(x-www-form-urlencoded)
#json(application/json)
data參數支援字典格式和字串格式,字典格式用json.dumps()方法把data轉換為合法的json格式字串次方法需要導入json模組;
import json json.dumps(data) # data转换成json格式
或將data參數賦值給post方法的json參數,必須為合法json格式,否則沒用,如果有布林值要小寫,不能有非Unicode字元。
import requests url = "https://editor.net/" data = {"key": "value"} # 字典 外层无引号 resp = requests.post(url,data=data) print(resp.text)
import requests url = "https://editor.net/" data = '{"key": "value"}' # 字符串格式 resp = requests.post(url, data=data) print(resp.text)
(1)json.dumps()方法轉換
import requests import json url = "https://editor.net/" data = {"key": "value"} resp = requests.post(url, data=json.dumps(data)) print(resp.text)
(2)將字典格式的data資料賦給post方法的json參數
import requests import json url = "https://editor.net/" data = {"key": "value"} resp = requests.post(url, json=data) print(resp.text)
最近在用Requests做一個自動發送資料的小程序,使用的是Requests庫,在使用過程中,對於post資料的編碼有一些問題,查找很多資料,終於解決。
我們一般post一個dict資料的時候,requests都會把這個dict裡的資料進行urlencode,再進行傳送。
但我發現他用的urlencode預設是UTF-8編碼,如果我的網站程式只支援gb2312的urlencode怎麼辦呢?
可以引入urllib中的urllib.parse.urlencode進行編碼。
from urllib.parse import urlencode import requests session.post('http://www.bac-domm.com', data=urlencode({'val':'中国人民'}, encoding='gb2312'), headers = head_content)
有時我們不希望資料進行urlencode,怎麼辦?
只要在post的data裡拼接成字串就可以了,當然在拼接的時候要注意字串的編碼問題,比如說含有中文時,就應該把編碼設定為utf-8或gb2312
vld = 'val:中国人民' session.post('http://www.bac-domm.com', data=vld.encode('utf-8'), headers = head_content)
以上是python requests post如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!