python openpyxl excel to dict

2018-08-07  赵云峰 

很久不写东西了,最近在碰到一个问题到处baidu google 不得解,最后还是自己实现了。

python 自动化中 ,参数化数据读写会用到很多方式,读写.txt,.csv都比较容易,读写.xlsx也不是很难,只是在将xlsx 数据读取并转换成字典时遇到一些麻烦,最终自己解决了,纪录一下。

---------------------------------------------------------------------------------------------------------

from openpyxl import Workbook, load_workbook

def readXlsxAsDict(dataPath):
	wb = load_workbook(dataPath)
	current_sheet = wb["data"]
	result_dict = []
	# headers = list(current_sheet.iter_rows())[0]
	# print(headers)
	for i in range(1,current_sheet.max_row):	
		line = dict()
		x = 0
		for header in list(current_sheet.iter_rows())[0]:
			# print(cel.value)
			line[header.value] = list(current_sheet.iter_rows())[i][x].value
			x +=1
		result_dict.append(line)
	return result_dict

if __name__ == '__main__':
	xdata = readXlsxAsDict("../TestData/checkA.xlsx")
	print(xdata)

xlsx文件数据类似这样的子的:


最终读取出来的:

[{'caseID': 'case_0001', 'pageURL': 'https://aaa.com', 'HotelHP': 'Sunshine City Prince Hotel Tokyo', 'CheckIn': '2018-08-10', 'CheckOut': '2018-08-15', 'Stars': 3, 'respect result': 1, 'compatibility': 'yes'}, {'caseID': 'case_0002', 'pageURL': 'https://bbb.com', 'HotelHP': 'Yanling Bloom Hot Spring Hotel', 'CheckIn': '2018-08-20', 'CheckOut': '2018-08-25', 'Stars': 4, 'respect result': 1, 'compatibility': 'no'}]

 正是自己所需要的

就这么多....


405°/4049 人阅读/1 条评论 发表评论

小窝  2018-08-07

py简洁实现 赞一个


登录 后发表评论