因为出现了希望将返回数据写入excel的需求,所以今天又去网上查询学习,我觉得其实pandas
可能更好用一些,准备等节后回来详细了解一下,然后这里就先用xlwt
实现一下吧(ps:不是说不好,希望xlwt
不要生气)(pps:之前写了一个xlrd
读取excel的分享,我总觉得必须得写一下xlwt
才完整)。
xlwt模块安装
作为第三方库,使用前仍然需要下载.
pip3 install xlwt
xlwt具体使用
- 引入模块
import xlwt
因为接口返回数据,大部分是字典形式,所以在这里写入数据的格式为字典。
test_data=[
{"name":"amy","age","18"},
{"name":"allen","age","17"}
]
- 整体思路
将字典数据写入excel的具体思路为:
- 建立工作簿及sheet。
- 确定表头,写入表格的第一行。
- 分离value,将字典中每一个键对值的值存入一个新的list中,而后按条进行切割。最终在一个list中,每一条数据的各个值是一个list。(说的仿佛不是人话)
例如上方的test_data
,切割完之后的格式为
[["amy","18"],["allen","17"]]
- 将每一条数据的值写入表格的每一行(从第二行开始,第一行是表头)。
- 保存文件。
具体实现
注意看注释哦~~
import os
import xlwt
path=os.path.abspath(os.path.pardir)
value_list=[]
class writeexcel():
def write_xls(self):
#建立工作簿及确定sheet
file = xlwt.Workbook(encoding='utf-8')
sheet = file.add_sheet('sheet1')
#确定表头,写入表格的第一行
heads=["name","age"]
ls=0
for head in heads:
sheet.write(0,ls,head)
ls+=1
#分离value,将字典中每一个键对值的值存入一个新的list中
for n in test_data:
for value in n.values():
value_list.append(value)
#将每一条数据的各个值存入另一个list中
new_list = [value_list[i:i + 2] for i in range(0, len(value_list), 2)]
#将每一条数据的各个值写入表格的每一行(从第二行开始,第一行是表头)
i=1
for list in new_list:
j=0
for d in list:
sheet.write(i,j,str(d))
j+=1
i+=1
#保存文件,直接写入名称会保存在当前文件目录下。
file.save('test_data.xls')
下一篇估计节后了,pandas见!
自我记录,有错误欢迎指正~~
网友评论