Home > Article > Backend Development > How to use python requests post
import requests
request.post(url, data, json, kwargs) # post请求格式 request.get(url, params, kwargs) # 对比get请求
Form (x-www-form-urlencoded)
json (application/json)
data Parameters support dictionary format and string format. In dictionary format, use the json.dumps() method to convert data into a legal json format string. This method requires importing the json module;
import json json.dumps(data) # data转换成json格式
or assigning the data parameter to the post method. The json parameter must be in a legal json format, otherwise it will be useless. If there is a Boolean value, it must be lowercase and cannot have non-Unicode characters.
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() method conversion
import requests import json url = "https://editor.net/" data = {"key": "value"} resp = requests.post(url, data=json.dumps(data)) print(resp.text)
(2) Assign data in dictionary format to the json parameter of the post method
import requests import json url = "https://editor.net/" data = {"key": "value"} resp = requests.post(url, json=data) print(resp.text)
Recently I am using Requests to make a small program that automatically sends data. I am using the Requests library. During the use, I have some problems with the encoding of post data and I have to find a lot of information. Finally solved.
When we usually post a dict data, requests will urlencode the data in the dict and then send it.
But I found that the urlencode he used is UTF-8 encoding by default. What if my website program only supports gb2312 urlencode?
You can introduce urllib.parse.urlencode in urllib for encoding.
from urllib.parse import urlencode import requests session.post('http://www.bac-domm.com', data=urlencode({'val':'中国人民'}, encoding='gb2312'), headers = head_content)
Sometimes we don’t want the data to be urlencoded, what should we do?
Just concatenate it into a string in the post data. Of course, you should pay attention to the encoding of the string when splicing. For example, if it contains Chinese, you should set the encoding to utf-8 or gb2312.
vld = 'val:中国人民' session.post('http://www.bac-domm.com', data=vld.encode('utf-8'), headers = head_content)
The above is the detailed content of How to use python requests post. For more information, please follow other related articles on the PHP Chinese website!