python使用excel,命名有数据,上传提示为空

python使用excel做接口测试,文件上传,命名有数据 却提示数据为空

代码呢?

【相关推荐】



  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7735301
  • 你也可以参考下这篇文章:Python解决 excel导入数据库 & Python读取数据库并保存 excel文件(多种方法&详细讲解)
  • 您还可以看一下 裴帅帅老师的Python操作Excel实战办公自动化课程中的 Python读取Excel计算数据列相关性小节, 巩固相关知识点
  • 除此之外, 这篇博客: python批量将excel内容进行翻译,写入中的 python批量将excel内容进行翻译,写入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    由于小编初来乍到,有很多地方不是很到位,还请见谅,但是很实用的哦!
    1.首先是需要进行文件的读写操作,需要获取文件路径,方式使用os.listdir(路径)进行批量查找文件。

    file_path =/home/xx/xx/xx’
    # ret 返回一个列表
    ret = list_dir = os.listdir(file_path)
    # 遍历列表,获取需要的结尾文件(只考虑获取文件,不考虑执行效率)
    for i in ret :
            if i.endswith('xlsx'):
           	# 执行的逻辑
    

    2.改写一下我调用的翻译接口

    def baidu_translate(appi, secretKe, content):
        appid = appi
        secretKey = secretKe
        httpClient = None
        myurl = '/api/trans/vip/translate'
        q = content
        fromLang = 'zh'  # 源语言
        toLang = 'en'  # 翻译后的语言
        salt = random.randint(32768, 65536)
        sign = appid + q + str(salt) + secretKey
        sign = hashlib.md5(sign.encode()).hexdigest()
        myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
            q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
            salt) + '&sign=' + sign
        try:
            httpClient = http.client.HTTPConnection('api.baidu_translation.baidu.com')
            httpClient.request('GET', myurl)
            response = httpClient.getresponse()
            jsonResponse = response.read().decode("utf-8")  # 获得返回的结果,结果为json格式
            js = json.loads(jsonResponse)  # 将json格式的结果转换字典结构
            dst = str(js["trans_result"][0]["dst"])  # 取得翻译后的文本结果
            print(dst)  # 打印结果
            return dst
        except Exception as e:
            print(e)
        finally:
            if httpClient:
                httpClient.close()
    

    3.现在需要进行读取excel的内容,使用方法,xlrd,小编使用的翻译是借用的

    百度翻译的API,获取excel内容,传递给API
    import hashlib
    import http.client
    import json
    import os
    import random
    import time
    import urllib
    
    import openpyxl
    import xlrd
    # 借用上边所述的文件路径操作
    # appid :翻译API提供,需要注册获取
    # secretKey :翻译API提供,需要注册获取
    def read_excel(file_path, appid, secretKey):
        list_dir = os.listdir(file_path)
        for i in list_dir:
            if i.endswith('.xlsx'):
            	# 拼接获取绝对路径
                file_path = file_path + '\\' + i
                rbook = xlrd.open_workbook(filename=file_path)
                rbook.sheets()
                # 获取excel某页数据
                sheet1 = rbook.sheet_by_index(0)
                row_num = sheet1.nrows
                for num in range(row_num):
                    try:
                    	# 小编这样写的原因是我值获取指定列的数据,
                    	# 例如现在获取第3,4列数据
                        txt1 = sheet1.cell_value(num, 3)
                        txt2 = sheet1.cell_value(num, 4)
                        # 为了2列数据可以同时进行翻译
                        txt = txt1 + '=' + txt2
                        # ret返回翻译结果
                        ret = baidu_translate(appid, secretKey, txt)				
                        
                        # 防止调用接口出错
                        time.sleep(1)
                        # 将翻译结果在写如excel
                        write_excel(ret, num, file_path)
                    except Exception as e:
                        print(e)
                        continue
    

    4.因为上一步调用了这个写入excel的函数,所有我们需要写一个函数来完成写入的操作。

    def write_excel(ret, num, file_path):
        f_txt = file_path
        book = openpyxl.load_workbook(f_txt)
        sheet1 = book.worksheets[0]
        # 在这个地方是获取某列写入
        txtE = 'F' + str(num + 1)
        txtF = 'G' + str(num + 1)
        s_txt = ret.split('=')
        sheet1[txtE] = s_txt[0]
        sheet1[txtF] = s_txt[1]
        book.save(f_txt)
        
    if __name__ == '__main__':
        appid = 'xxxx'
        secretKey = 'xxxx'
        path = r'xxx'
        read_excel(path, appid, secretKey)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^