应用场景:
在自动化测试中,对于大量测试数据的驱动以及测试结果的存储;
csv特点:csv文件具有格式简单,快速存取,兼容性好等特点;类似一个文本文档,每一行保存一条数据,同一行中的各个数据通常采用逗号(或tab)分隔。python自带了csv模块,专门用于处理csv文件的读取和存档。
以一个简单的student表为例:
在测试的过程中可能要考虑到参数化,所以需要读取某一列的数据,将其依次传到接口中;
import pandas as pd # 导入pandas模块,简写为pd
data_info = pd.read_csv("student.csv") # 读取student表内容,返回的是数组的形式;
for i, data in data_info.iterrows():
name = data["name"] # 取到name这一列的数据
age = data["age"] # 取到age 这一列的数据
subject = data["subject"]
那么如何将数据写入csv呢?
import pandas as pd
data1 = ["小明", 20] # 以list 存储每一行的数据
data2 = ["小雨", 21]
data3 = ["小花", 22]
header = ["姓名", "年龄"]
df = pd.DataFrame([data1, data2, data3], columns=header) # 组成一个csv
df.to_csv("./data.csv", index=False)
结果如下:
最后可以封装一下pandas读写csv的方法,这样在工作中使用起来会比较方便;
def read_csv_data(file_path):
# 读取csv数据,输入文件的路径,返回的是{[]}结构的数据
df = pd.read_csv(file_path)
data_list = [{k: v for k, v in row.items() if 'Unnamed:' not in k} for index, row in df.iterrows()]
return data_list
def write_csv_data(data, file_path):
# 存储csv,输入{[]}结构数据,文件路径
df = pd.DataFrame(data)
# print(df)
df.to_csv(file_path, index=False)