Python3使用Requests发送POST请求及结果处理详解
本文介绍如何在Python3中利用Requests库发送POST请求。重点讲解如何设置Headers中的Content-Type为application/json,并将字典数据通过json.dumps转换为JSON格式发送。此外,还包含获取响应文本、状态码以及将接口返回数据处理后保存至本地Excel文件的完整示例代码。
Python3发送POST请求的基本设置
直接通过代码示例进行说明。
import requests
import json
raw = {}
在请求头(headers)中增加Content-Type参数,并将其值指定为json格式。
headers = {'Content-Type': 'application/json'}
执行POST请求时,需使用json包将字典形式的参数转换为JSON字符串。
response = requests.post(url='XXXX', headers=headers, data=json.dumps(raw))
查看返回的响应内容。
print(response.text)
查看响应状态码。
print(response.status_code)
接口数据处理与Excel保存示例
补充说明:在Python3中,使用Requests发送POST请求后,对接口返回的数据进行解析处理,最终将结果存入列表并保存至本地Excel文件中。
直接通过代码示例进行说明。
#coding:utf-8
import http.cookiejar
import json
from urllib import parse,request
import requests
from openpyxl import Workbook
import datetime
name = 'tarcuper'
allowed_domains = ['*']
start_urls1 = 'https://www.tracup.com/api/issues/view'
start_urls2 = 'https://www.tracup.com/api/issues/getTrendList'
cookies = {
"acw_tc": "78197306155549842936beitidaile9532fb18575fad1fc268ee",
"_ga": "GA1.2.1414148155.1555498434",
"PHPSESSID": "q7hj5m5neitidaile95efop7eee37ki",
"_gid": "GA1.2.1742874168.1557716531",
"pgyx2_session": "wN99ZYREthkeqaL92z0TyFP1W7u3WMIsN8MhrIxaP7m4pHYCERP8p9X7RlR4p3zIhkID%2B2SpEj%2BWQ2L%2FVZlV7DqvMQHvZAEDNMtr88KWpCxMB7U%2FCUasbRfR7HA6GtXfsezWclbCwkHNVanq0Pd2uh5U051O1gh3ducUjpugaydrcKG65bg7ae%2BsVx4pgqUyHB00%2F%2Fvh3cPGTbTNHdWIolrA7QRhH6K5OWQlfgIH1ugvnd69LYeitidaile95WyxIJZC4XtUOJA7YYkTQReN2P92E%2BrwxCcRJCHWm6vs9Jw1IrgdFo%2BXzG4ylpZFCtFGK0RmgX%2FR3n9Cc%2FMdE1AsMG58xCDYVbt9Bz4Fe53CR1ujRMX9MWWeHyZt5vcbRT%2FIQhcapZREpR7qgsdQ0ZAfPFvZGa1RPtSFxqrFN%2BGUhPhLy%2BNu0fK4n%2F99ZWiG7rrxk%2BPybM2gQZ2JZ5KYXvAGiQ%2Bq4%3D"
}
headers = {
"Host": "www.tracup.com",
"Connection": "keep-alive",
"Cache-Control": "no-cache",
"Pragma": "no-cache",
"If-Modified-Since": "0",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",
"Accept": "*/*",
"Referer": "https://www.tracup.com/cloud/",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
}
def request2():
req2 = requests.post(url=start_urls2, data=data, headers=headers, cookies=cookies)
res2 = req2.text
res2 = json.loads(res2)
bbb = (res2['data'])
# print(bbb)
# print('上面bbb,下面cccc')
ccc = (bbb['list'])
# print(ccc)
for var in ccc:
iac_created = var.get('iac_created')
log = var.get('log')
# print(log)
# print(iac_created)
if log == "修改状态为 已解决":
return iac_created
wb = Workbook()
ws = wb.create_sheet("che")
for i in range(1,500):
data = {
"pKey":"916338276d07f3c1cacc662b2afa93c2",
"iNo":str(i),
}
req = requests.post(url=start_urls1, data=data, headers=headers, cookies=cookies)
res = req.text
res = json.loads(res)
aaa = (res['data'])
_alist = []
j = 0
try:
iac_created = request2()
i_no = aaa['i_no']
author = aaa['author']
assigner = aaa['assigner']
i_created = aaa['i_created']
i_updated = aaa['i_updated']
i_status = aaa['i_status']
except:
pass
if i_status == 'a3f47781286ee2ba2bbefbebd0bea5bc' and iac_created != None:
_alist.append(i_no)
_alist.append(author)
_alist.append(assigner)
_alist.append(i_created)
_alist.append(iac_created)
d1 = datetime.datetime.strptime(i_created, '%Y-%m-%d %H:%M')
d2 = datetime.datetime.strptime(iac_created, '%Y-%m-%d %H:%M:%S')
d = d2-d1
days = d.days
delta = d.seconds
h = round(days*24+delta/3600)
_alist.append(h)
print(_alist)
ws.append(_alist)
wb.save("aaa.xlsx")
以上关于Python3发送Request请求及查看返回结果的实例分享完毕,希望能为读者提供参考,并欢迎大家支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













