相关文章推荐
大力的熊猫  ·  log或者txt文本处理,关键数据提取并存到 ...·  1 月前    · 
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/ ...·  1 月前    · 
卖萌的青椒  ·  Jmeter随机参数各种搭配 - 笨手笨脚 ·  1 月前    · 
帅呆的佛珠  ·  Jmeter之读取csv文件踩坑记 - 梁剑lj ·  1 月前    · 
魁梧的水煮鱼  ·  Jmeter 参数化实现开发者社区·  1 月前    · 
痴情的油条  ·  少女前线2:追放 官方公告 |第 5 页 ...·  3 月前    · 
文雅的弓箭  ·  winform程序提示“创建窗口句柄时出错” ...·  1 年前    · 
重情义的鸵鸟  ·  Liquibase将列默认值设置为null- ...·  1 年前    · 
火星上的饼干  ·  java 随机生成字符串-掘金·  2 年前    · 
烦恼的哑铃  ·  freemarker map ...·  2 年前    · 
Code  ›  Python:将一个 csv 文件转为 json 文件存储到磁盘开发者社区
python csv
https://cloud.tencent.com/developer/article/1671362
睿智的羊肉串
2 年前
作者头像
wsuo
0 篇文章

Python:将一个 csv 文件转为 json 文件存储到磁盘

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 技术进阶之路 > Python:将一个 csv 文件转为 json 文件存储到磁盘

Python:将一个 csv 文件转为 json 文件存储到磁盘

作者头像
wsuo
发布 于 2020-07-30 18:54:08
1K 0
发布 于 2020-07-30 18:54:08
举报

问题描述

利用记事本创建一个a.csv文件,内容如下:

姓名,语文,数学,英语,总分
张三,80,80,80,240
李四,90,90,90,270
王五,70,70,70,210
赵六,70,80,90,240

编程完成以下功能:

  • 1.读取 a.csv 文件的数据内容
  • 2.最后增加一列,名称为‘排名’
  • 3.根据总分得到正确的排名并打印输出
  • 4.将包含排名列的所有数据保存为 a.json 文件
  • 5.提交代码和运行截图。

代码实现

"""
@author: shoo Wang
@contact: wangsuoo@foxmail.com
@file: demo04.py
@time: 2020/4/27 0027
import json
# f1 负责读入文件, f2 负责写入文件 + 代表同时具备读写功能
f1 = open('./a.csv', 'r+', encoding='utf-8')
f2 = open('./a.json', 'w+', encoding='utf-8')
# 使用列表推导式, 获取二维结构
table = [i.strip('\n').split(',') for i in f1.readlines()]
# 表头增加排名,然后我们就不需要表头了,因为它没法排序
table[0].append('排名')
# 由于 sort 函数和 extend 函数都是没有返回值的
# 所以我们必须事先存储待处理变量,如果题目中没给总分可以 sum([int(j) for j in x[1:]])
sortList = table[1:]
sortList.sort(key=lambda x: x[-1], reverse=True)
# 增加排名数字
for i in range(len(sortList)):
    sortList[i].append(str(i + 1))
# 表头加上已经排好序的表体
listHead = table[:1]
listHead.extend(sortList)
# 得到 Python 数据类型的 listHead
# 现在转化成 json 数据类型
# 1.首先建立映射关系,zip() 函数返回的是 zip 类型
#   我们要把 zip 类型转化成 字典类型;
toJson = []
for i in listHead[1:]:
    toJson.append(dict(zip(listHead[0], i)))
 
推荐文章
大力的熊猫  ·  log或者txt文本处理,关键数据提取并存到csv文件
1 月前
体贴的松树  ·  性能测试--Jmeter随机生成/随机选取/csv读取关键字 - Wilson_Blogs
1 月前
卖萌的青椒  ·  Jmeter随机参数各种搭配 - 笨手笨脚
1 月前
帅呆的佛珠  ·  Jmeter之读取csv文件踩坑记 - 梁剑lj
1 月前
魁梧的水煮鱼  ·  Jmeter 参数化实现开发者社区
1 月前
痴情的油条  ·  少女前线2:追放 官方公告 |第 5 页 - TapTap 少女前线2:追放论坛
3 月前
文雅的弓箭  ·  winform程序提示“创建窗口句柄时出错”bug - xishi - 博客园
1 年前
重情义的鸵鸟  ·  Liquibase将列默认值设置为null-腾讯云开发者社区-腾讯云
1 年前
火星上的饼干  ·  java 随机生成字符串-掘金
2 年前
烦恼的哑铃  ·  freemarker map contains key-掘金
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号