学生课程成绩单文件SCORE.CSV,存有5名同学各五门课的成绩。将文件内容转为JSON格式写入新文件score.json中。这是将CSV转成JSON的文件格式转换题,需要把“填空”处的代码补出来

import json # 导入转json格式所需的库
def csv_to_list(file):
"接收csv文件名为参数,将每行数据根据逗号切分为列表
返回一个将每行数据转的列表做为元素的二维列表"
with open(file, 'r', encoding='utf-8') as data: score_ls = [] # 建立一个空的列表 for line in data: # 遍历data中的每一行
# 去掉行末换行符,根据逗号切分为列表 line_data = 填空
score_ls.append(line_data) # 将每行数据加入列表中
return score_ls # 返回转为列表的数据
def list_to_json(score_ls):
接收列表为参数,将数据转为json格式写入文件,函数无返回值"
score_dict = [] # 建立一个空的列表 for i in range(1, len(score_ls)):
score_dict.append(填空)

列表第一个元素与后面每个元素中对应元素生成键值对并转为字典

将字典附加到列表中

创建json文件,将列表中的数据编码为json格式后写入文件

with open("score.json", "w", encoding='utf-8') as data_json:
json.填空(score_dict,data_json, indent=4,ensure_ascii=False)
def json_to_csv(file):
"""接收json文件名为参数,将数据转为csv格式写入文件,
函数无返回值"""
with open(file, "r", encoding='utf-8') as data_json:
data_ls = 填空 # 转为元素是字典的列表
data_list = []
title = list(data_ls[0].keys()) # 返回字典中所有的键,标题行
data_list.append(title)
for dic in data_ls: # 遍历列表,dic为字典类型
data_list.append(填空) # 将字典值加入列表
with open("new_score.csv", "w", encoding='utf-8') as data_csv:
for ls in data_list: # 遍历列表,ls为列表中元素,仍为列表
data_csv.write(",".join(ls) + "\n")

将元素用逗号连接为带换行符的字符串,写入文件中

csv_file = './score.csv' # 原始csv格式文件
json_file = './score.json' # 准备创建并写入的json文件
data_in_ls = csv_to_list(csv_file) # 读csv文件中的数据到列表中
list_to_json(data_in_ls) # 列表中的数据转json格式并写入json文件

  • json_to_csv(json_file) # 读json中的数据,转为csv格式写入文件

我先尝试填了一下,你看看哪些有问题:

import json # 导入转json格式所需的库
def csv_to_list(file):
    #"接收csv文件名为参数,将每行数据根据逗号切分为列表
    #返回一个将每行数据转的列表做为元素的二维列表"
    with open(file, 'r', encoding='utf-8') as data: 
        score_ls = [] # 建立一个空的列表 
        for line in data: # 遍历data中的每一行
            # 去掉行末换行符,根据逗号切分为列表 
            line_data = line.strip().split(',')
            score_ls.append(line_data) # 将每行数据加入列表中
    return score_ls # 返回转为列表的数据
def list_to_json(score_ls):
    #接收列表为参数,将数据转为json格式写入文件,函数无返回值"
    score_dict = [] # 建立一个空的列表 
    for i in range(1, len(score_ls)):
        score_dict.append(score_ls[i])

    #列表第一个元素与后面每个元素中对应元素生成键值对并转为字典
    #将字典附加到列表中
    #创建json文件,将列表中的数据编码为json格式后写入文件
    with open("score.json", "w", encoding='utf-8') as data_json:
        json.dumps(score_dict,data_json, indent=4,ensure_ascii=False)
def json_to_csv(file):
    """接收json文件名为参数,将数据转为csv格式写入文件,函数无返回值"""
    with open(file, "r", encoding='utf-8') as data_json:
        data_ls = json.load(data_json.readlines) # 转为元素是字典的列表
    data_list = []
    title = list(data_ls[0].keys()) # 返回字典中所有的键,标题行
    data_list.append(title)
    for dic in data_ls: # 遍历列表,dic为字典类型
        data_list.append(dic) # 将字典值加入列表
    with open("new_score.csv", "w", encoding='utf-8') as data_csv:
        for ls in data_list: # 遍历列表,ls为列表中元素,仍为列表
            data_csv.write(",".join(ls) + "\n")

#将元素用逗号连接为带换行符的字符串,写入文件中
csv_file = './score.csv' # 原始csv格式文件
json_file = './score.json' # 准备创建并写入的json文件
data_in_ls = csv_to_list(csv_file) # 读csv文件中的数据到列表中
list_to_json(data_in_ls) # 列表中的数据转json格式并写入json文件
json_to_csv(json_file) # 读json中的数据,转为csv格式写入文件