python读取csv文件、excel文件并封装成dict类型的list,直接看代码

# coding=UTF-8
import csv
import xlrd


class ReaderFile():
"""
读取csv文件
filePath:文件路径
"""

def getCsvValue(self, filePath):
# 用于存放返回dict的list
dictList = [];
# 打开指定路径的文件
with open(filePath) as file:
# 读取csv文件
datareader = csv.reader(file);
# 读取的csv文件内容转换成list
csvList = list(datareader);
# 获取csv的第一列为dict的key值
keyList = csvList[0];
# 将csv取出的数据处理成dict形式
for value in range(1, len(csvList)):
# dict必须声明在此位置,后面的dictList.append()时里面的dict是不同的对象,若声明全局变量,那dictList中的dict的指针全是指向同一个对象,值完全一致
csvDict = {};
for item in range(0, len(keyList)):
# 向dict中添加key和value
csvDict[keyList[item]] = csvList[value][item];
# 将处理完成的dict追加到dictList中
dictList.append(csvDict)
return dictList;

"""
读取excel文件
filePath:文件路径
sheetName:要读取的sheet工作表的名称
"""

def getExcelValue(self, filePath, sheetName):
#用于存放获取封装的dict的list
allList = [];
# 读取excel文件
workbook = xlrd.open_workbook(filePath);
# 根据sheet名称读取sheet内容
sheetBook = workbook.sheet_by_name(sheetName);
# 获取第一行的内容作为key
keyList = sheetBook.row_values(0);
# 对第二行及之后的内容进行遍历,与keyList组合并封装成dict
for value in range(1, sheetBook.nrows):
listDict = {};
for key in range(0, len(keyList)):
listDict[keyList[key]] = sheetBook.row_values(value)[key];
allList.append(listDict)
return allList;

posted on 2017-08-16 16:46  zw520ly  阅读(1282)  评论(0编辑  收藏  举报

导航