1、读取的数据的类型的问题总结:
-如果单元格为空(没有编辑过数据)读取出来是 None == 注意空格是字符串 不是None
-如果单元格里只有数字,那么读取出来直接是数字-- 整型或者浮点型
-如果单元格当中用只有TRUE FALSE (excel表格会自动默认大写), 那么读取转化为布尔值类型–True False;
-如果单元格只有时间格式 : 2024/12/22,那么读取出来就是 datatime类型 - 年月日时分秒 - datetime.datetime(2024, 12, 22, 0, 0)
-以上都不是,那么就是字符串的类型;比如列表 字典等数据。因为excel表格不认识字典这些数据类型 所以都是字符串。
- 1、字符串包裹的列表、字典数据 – 脱引号 – eval()
- 2、字符串包裹的非Python表达式,不能通过eval处理–json反序列来操作化
"""
函数封装步骤: 任何功能代码都可以封装函数。
1、第一步:先把功能代码写出来 【逻辑】 -- ok
2、第二步: def,封装函数 , 选中所有的逻辑代码-tab缩进
3、第三步:考虑是否存在变化的数据--有做参数化 == 作为函数的参数
4、第四步:判断是否需要返回值,return定义返回值
项目分层管理思想。
"""
from openpyxl import load_workbook
from tools.handle_path import excel_path
def red_exc(ee, sheet):
wb = load_workbook(ee)
sh = wb[sheet]
# 读取当前表单全部数据
cases = list(sh.values) # 得到列表嵌套元组的数据
print(cases)
print(type(sh.values))
# 每条用例数据都要跟表头元组压缩,先取出来表头
heading = cases[0]
# print(heading)
list_case = [] # 定义空列表,用来存放压缩后的字典数据
# 依次拿到后面的每一行的数据-遍历,分别与表头行zip压缩
for i in cases[1:]:
data = dict(zip(heading, i)) # zip压缩后转成字典
# print(data)
list_case.append(data)
return list_case