python 调用web接口导入表格文件

应用场景

需要进行表格导入到系统中时

从web接口调用时,获取请求头信息
image

注意,这里需要将 Content-Type: multipart/form-data; 进行去除,不然会报错

拿到from_data的参数信息 后面再程序里进行填参处理
image

实现代码

# -*- ecoding: utf-8 -*-
# @ModuleName: test001
# @Function: 
# @Author: darling
# @Time: 2022-03-31 15:52

import os
import sys
import time

import requests
from loguru import logger


def read_headers(file_name):
    if not exists_file(file_name):
        exit_sys(file_name + ' 文件不存在,请在当前目录检查必要文件')
    headers = {}
    with open(file_name, 'r', encoding='UTF-8') as file:
        lines = file.readlines()
        for line in lines:
            if line == '\n':
                continue
            header = {}
            # 这里用的是[: ]进行拆分,因为value中也会存在冒号
            ll = line.split(': ')
            key = ll[0].strip()
            val = ll[1].strip().replace('\n', '')
            header[key] = val
            headers.update(header)
    return headers


def exit_sys(msg):
    logger.info(msg)
    logger.info('程序退出··· ···')
    time.sleep(3)
    sys.exit()


def exists_file(file_name):
    return os.path.exists(file_name)


def post_file():
    url = '导入文件的url接口'
    # 要上传的文件
    files = {'uploadedfile': open(r'C:\Users\Administrator\Desktop\收货页面EXCEL批量导入模板20220225.xlsx', 'rb'),
             'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
             'type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
             'uploadType': 'html5',
             'name': '收货页面EXCEL批量导入模板20220225.xlsx',
             'index': 0
             }  # 显式的设置文件名
    headers = read_headers('./header.txt')

    r = requests.post(url, files=files, headers=headers)
    logger.info(r.text)


if __name__ == "__main__":
    post_file()

header.txt 里面就是 接口请求的头信息,直接从开发页面进行复制粘贴即可

注意, 去掉请求头里的 【Content-Type: multipart/form-data】 参数

posted @ 2022-03-31 18:45  darling331  阅读(507)  评论(0编辑  收藏  举报