Python3使用Requests发送POST请求及结果处理详解

Chloe
Chloe
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍如何在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请求及查看返回结果的实例分享完毕,希望能为读者提供参考,并欢迎大家支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表