Cet article présente principalement des exemples sur la façon d'implémenter des requêtes en Python pour envoyer/télécharger plusieurs fichiers. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
1. Environnement requis
Python2 🎜>
Il n'y a qu'une seule interface pour envoyer des fichiers dans les requêtes, qui consiste à utiliser le paramètre files des requêtes. .post. Le formulaire de demande est le suivant :
Le paramètre files peut accepter de nombreuses formes de données. Les deux formes les plus basiques sont :
Type de dictionnaire
Type de liste de tuples
url = "http://httpbin.org/post" data = None files = { ... } r = requests.post(url, data, files=files)
2.1. Paramètre de fichiers de type dictionnaire
Le format de paramètre de dictionnaire officiellement recommandé est le suivant :Ce dictionnaire La clé est le nom du champ lors de l'envoi de la demande de publication, et la valeur du dictionnaire décrit les informations du fichier à envoyer ; comme on peut le voir ci-dessus, la valeur peut être un 2-tuple, 3-tuple ou 4-tuple
La signification de chaque champ de ce tuple est :
{ "field1" : ("filename1", open("filePath1", "rb")), "field2" : ("filename2", open("filePath2", "rb"), "image/jpeg"), "field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"}) }
Par défaut, la valeur par défaut
sera utilisée sauf pour le formulaire d'utilisation ci-dessus, les requêtes prennent en fait en charge un formulaire de paramètre plus concis, comme suit :
("filename", "fileobject", "content-type", "headers")
L'effet équivalent des paramètres dans ce formulaire est le suivant, où nom de fichier est le nom du chemin du fichier :
{ "field1" : open("filePath1", "rb")), "field2" : open("filePath2", "rb")), "field3" : open("filePath3", "rb")) }
Bien sûr, vous pouvez également envoyer une demande de fichier comme celle-ci
{ "field1" : ("filename1", open("filePath1", "rb")), "field2" : ("filename2", open("filePath2", "rb")), "field3" : ("filename3", open("filePath3", "rb")) }
La valeur du nom de fichier ici est field1
2.2. Le paramètre files du type liste de tuples{ "field1" : open("filePath1", "rb").read()) }
Les sous-éléments de la liste peuvent être des tuples ou des listes, la forme d'introduction est ; également pris en charge ici. Comme suit :
[ ("field1" : ("filename1", open("filePath1", "rb"))), ["field2" : ("filename2", open("filePath2", "rb"), "image/jpeg")], ("field3" : ("filename3", open("filePath3", "rb"), "image/jpeg", {"refer" : "localhost"})) ]
3. , il est défini sur sélection multiple]
[ ("field1" : open("filePath1", "rb"))), ##filename 使用的是filepath的文件名 ("field2" : open("filePath2", "rb").read())) ##filename 使用的是键值,即 field2 ]
3.1 Formulaire de paramètre de dictionnaire
3.2. Formulaire de liste de tuples
{ "field1" : [ ("filename1", open("filePath1", "rb")), ("filename2", open("filePath2", "rb"), "image/png"), open("filePath3", "rb"), open("filePath4", "rb").read() ] }
Pour les demandes envoyées dans les deux formulaires ci-dessus, tous les fichiers seront sous le même champ, et le service d'arrière-plan n'a besoin que de démarrer à partir du champ field1. Vous pouvez obtenir tous les objets fichier
4. Envoyer les champs de données communs en même temps
[ ("field1" , ("filename1", open("filePath1", "rb"))), ("field1" , ("filename2", open("filePath2", "rb"), "image/png")), ("field1" , open("filePath3", "rb")), ("field1" , open("filePath4", "rb").read()) ]
Recommandations associées :
Python implémente une fonction d'extraction d'objet vidéo super simpledata = {"k1" : "v1"} files = { "field1" : open("1.png", "rb") } r = requests.post("http://httpbin.org/post", data, files=files)
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!