python练习册之14 15 16

第 0014 题: 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示:

{
    "1":["张三",150,120,100],
    "2":["李四",90,99,95],
    "3":["王五",60,66,68]
}

请将上述内容写到 student.xls 文件中,如下图所示:

student.xls

  • 阅读资料 腾讯游戏开发 XML 和 Excel 内容相互转换

第 0015 题: 纯文本文件 city.txt为城市信息, 里面的内容(包括花括号)如下所示:

{
    "1" : "上海",
    "2" : "北京",
    "3" : "成都"
}

请将上述内容写到 city.xls 文件中,如下图所示:

city.xls

第 0016 题: 纯文本文件 numbers.txt, 里面的内容(包括方括号)如下所示:

[
    [1, 82, 65535],
    [20, 90, 13],
    [26, 809, 1024]
]

请将上述内容写到 numbers.xls 文件中,如下图所示:

numbers.xls

import json
import xlwt
from collections import OrderedDict


def run_1():

    with open('student.txt','r') as f:
        content = f.read()

    #转化为json,注意转化后的dict的元素位置可能和转化前可能不一样,因此需要ordereddict
    #loads()方法把str对象反序列化为json对象,自定义解码器为ordereddict
    d = json.loads(content,object_pairs_hook=OrderedDict)
    print(d)
    #初始化xls文件
    file = xlwt.Workbook()
    #添加sheet,工作表,名字为test
    table = file.add_sheet('test')
    for row ,i in enumerate(d):   #读取所有字典,row为序号,i为字典关键字key
        table.write(row,0,i)    #写入(行号,列号,key)
        for col,j in enumerate(d[i]):   #col为序号,j为value,有多个,需要迭代
            table.write(row,col+1,j)

    file.save('student.xls')



def run_2():
    with open('city.txt','r') as f:
        content = f.read()
    #同上
    d = json.loads(content,object_pairs_hook=OrderedDict)
    file = xlwt.Workbook()
    table = file.add_sheet('rest')
    for row ,i in enumerate(d):
        table.write(row,0,i)
        table.write(row,1,d[i])
    file.save('city.xls')


def run_3():
    with open('numbers.txt','r') as f:
        content = f.read()

    d = json.loads(content,object_pairs_hook=OrderedDict)
    file = xlwt.Workbook()

    table = file .add_sheet('test')
    for row , i in enumerate(d):
        for col, j in enumerate(i):
            table.write(row,col,j)

    file.save('number.xls')


if __name__ =="__main__":
    # run_1()
    run_2()
    run_3()




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值