美文网首页
PythonShowMeTheCode(0014-16): JS

PythonShowMeTheCode(0014-16): JS

作者: tyrone_li | 来源:发表于2016-08-31 19:57 被阅读0次

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库解析,只不过生成的数据结构有所变化。

相关文章

网友评论

      本文标题:PythonShowMeTheCode(0014-16): JS

      本文链接:https://www.haomeiwen.com/subject/abtqettx.html