1. 题目
第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示, 将下面的内容写入到 student.xls 文件中
{
"1":["张三",150,120,100],
"2":["李四",90,99,95],
"3":["王五",60,66,68]
}
2. 要点
如图所示, JSON里的映射关系与python中的字典很相似,利用json库读取JSON字符串,转化为字典,就可以方便的写入到xls文件中了。
另外,python35中一般采用openpyxl
来读写xlsx/xlsm/xltx/xltm文件。
pip install openpyxl
3. 实现
# -*- coding: utf-8 -*-
import json
import openpyxl
def get_json_dict(path):
if path is None:
return
with open(path, encoding="utf-8") as f:
tmp_str = f.read()
json_dict = json.loads(tmp_str)
return json_dict
def write_to_xls(json_dict):
wb = openpyxl.Workbook()
ws = wb.worksheets[0]
for i in range(1, len(json_dict)+1):
ws.cell(row=i, column=1).value = i
for j in range(2, len(json_dict["1"])+2):
ws.cell(row=i, column=j).value = json_dict[str(i)][j-2]
wb.save("student.xls")
if __name__ == "__main__":
json_dict = get_json_dict("student.txt")
print(json_dict)
4. 其他
0015和0016题均可以通过json库解析,只不过生成的数据结构有所变化。