Maison >développement back-end >Tutoriel Python >Comment utiliser la publication des requêtes Python
import requests
request.post(url, data, json, kwargs) # post请求格式 request.get(url, params, kwargs) # 对比get请求
form (x-www-form-urlencoded)
json (application /json)
Le paramètre data prend en charge le format de dictionnaire et le format de chaîne. Au format dictionnaire, utilisez la méthode json.dumps() pour convertir les données en une chaîne au format json légal.
import json json.dumps(data) # data转换成json格式
ou modifiez le paramètre data Le paramètre json attribué à la méthode post doit être dans un format json légal, sinon il sera inutile s'il y a une valeur booléenne, elle doit être en minuscule et ne peut pas contenir de caractères non 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) Conversion de la méthode 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) Attribuez les données au format dictionnaire au paramètre json de la méthode post
import requests import json url = "https://editor.net/" data = {"key": "value"} resp = requests.post(url, json=data) print(resp.text)
Récemment, j'utilise Requests pour créer un petit programme qui envoie automatiquement des données, en utilisant Il s'agit de la bibliothèque Requests. Lors de l'utilisation, il y a eu quelques problèmes avec l'encodage des données de publication. J'ai recherché beaucoup d'informations et je les ai finalement résolues.
Lorsque nous publions habituellement des données de dict, les requêtes coderont urlen les données dans le dict puis les enverront.
Mais j'ai découvert que le code urlen qu'il a utilisé est encodé par défaut en UTF-8. Et si le programme de mon site Web ne prend en charge que le code urlen gb2312 ?
Vous pouvez introduire urllib.parse.urlencode dans urllib pour l'encodage.
from urllib.parse import urlencode import requests session.post('http://www.bac-domm.com', data=urlencode({'val':'中国人民'}, encoding='gb2312'), headers = head_content)
Parfois, nous ne voulons pas que les données soient codées par urlen, que devons-nous faire ?
Concaténez-le simplement en une chaîne dans les données de publication. Bien sûr, vous devez faire attention à l'encodage de la chaîne lors de l'épissage. Par exemple, si elle contient du chinois, vous devez définir l'encodage sur utf-8 ou gb2312
vld = 'val:中国人民' session.post('http://www.bac-domm.com', data=vld.encode('utf-8'), headers = head_content).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!