Json格式的文件与CSV文件格式的转换(含编码的知识)

一、实验目的

1. 掌握json文件的格式;

2. 掌握json数据的生成方法以及转换成csv文件的方法;

3. 掌握json库、csv库以及列表、字典的基本操作。

二、实验方法

1. 运行环境:PyCharm 2023.3.4   Python 3.10

2. 任务一的基本操作:

图片1 任务一流程图

3. 任务二的基本操作:

图片2 任务二流程图

三、实验结果

1. 实验一结果

图片3 json文件展示

2. 实验二结果

图片4 csv文件展示

四、源代码

1. 任务一源代码

"""
任务一:将数据转换为json数据格式,并保存
"""
# TODO 1 导包
import json
# TODO 2 数据转换与写入
# me是我们要转换的数据
me = [
    {
        "job": "中级服务器开发",
        "company": "乐海互动",
        "salary": "10k-18k",
        "link": "https://www.lagou.com/jobs/6979476.html?show=d9f79b7ba2664d72acabd9e84a63083d"
    },
    {
        "job": "JAVA应用开发组长",
        "company": "新分享科技服务",
        "salary": "20k-30k",
        "link": "https://www.lagou.com/jobs/7013193.html?show=d9f79b7ba2664d72acabd9e84a63083d"
    },
    {
        "job": "Java高级开发工程师",
        "company": "腾讯",
        "salary": "15k-25k",
        "link": "https://www.lagou.com/jobs/4770607.html?show=d9f79b7ba2664d72acabd9e84a63083d"
    },
    {
        "job": "java开发工程师",
        "company": "腾讯",
        "salary": "15k-30k",
        "link": "https://www.lagou.com/jobs/5401616.html?show=d9f79b7ba2664d72acabd9e84a63083d"
    }
]
# 2.1 创建要写入的文件
file = open("Experiment01_Json.json", "w", encoding="utf-8")
# 2.2 将数据转换为json格式
data = json.dumps(me, ensure_ascii=False, indent=2)
# 调整参数ensure_ascii=False,否则仍然会出现乱码的情况
# 这是因为json.dumps序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False
# indent表示缩进,indent=2表示我们想要缩进的值为2
# 2.3 将数据写入创建的文件当中
file.write(data)
# 2.4关闭文件
file.close()

2. 任务二源代码

"""
任务二:自定义函数实现json格式转csv格式
"""
# TODO 1 导包
import csv
import json
# TODO 2 自定义函数实现json格式转csv格式
def json_to_csv():
    # 2.1 读取,创建文件
    json_file = open('Experiment01_Json.json', "r", encoding="utf-8")  # 读取json文件
    csv_file = open('Experiment01_JsonToCsv.csv', "w", encoding="ansi", newline='')  # 创建csv文件
    # 编码格式如果是utf-8会出现乱码情况,这里选用ansi可以避免这种情况
    # 2.2 提取出表头和表的内容
    json_data = json.load(json_file) 
    sheet_title = json_data[0].keys()
    sheet_data = []
    for data in json_data:
        sheet_data.append(data.values())
    # 2.3 创建csv写入器
    writer = csv.writer(csv_file)
    # 2.4 写入表头
    writer.writerow(sheet_title)
    # 2.5 写入内容
    writer.writerows(sheet_data)
    # 2.6 关闭文件
    json_file.close()
    csv_file.close()
# TODO 3 对自定义函数进行调用,并测试
if __name__ == '__main__':
    json_to_csv()

五、思考和总结

1. 心得体会

1.1 json数据在python中的使用:

json数据在Python中的识别效果非常好,因为在Python中,json数据就是一个字符串类型(<class 'str'>)的数据结构。Python内置的json库提供了方便的方法来解析和处理json数据,使得在Python中处理json数据变得简单而高效。通过json.load()方法可以将json字符串转换为Python对象,而json.dumps()方法则可以将Python对象转换为json字符串。这种统一的数据表示形式使得不同编程语言之间可以方便地交换和处理数据。 json数据的简洁性和易读性使其成为一种流行的数据交换格式。

1.2 json数据的转换的原因:

数据交换和传输:将数据转换为json格式可以方便在不同系统、不同平台之间进行数据交换和传输。json作为一种通用的数据格式,被广泛支持和应用,可以确保数据在传输过程中的可靠性和一致性。

数据存储:将数据转换为json格式后,可以方便地存储在文件或数据库中。

与Web服务交互:在Web开发中,json格式通常用于客户端和服务器之间的数据交换。通过将数据转换为json格式,可以实现前后端之间的数据传递和交互。

数据处理:json格式具有良好的可读性和易解析性,可以减少数据存储和读取的复杂性。通过解析json数据,可以轻松地提取所需的数据并进行相应的处理和操作。

2. 改进之处

2.1编码格式:

文件的编码格式的查看:

确保以记事本的方式打开文件,可以在记事本界面的右下角查看文件的编码格式,这样可以避免对编码格式进行调试。

图片5 文件编码格式的查看

dumps()编码格式:可以在上课的时候教同学们对源代码进行查看和解读

json.dumps序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False

图片6 dumps函数源代码查看

如果ensure_ascii为false,则返回值可以包含非ascii字符,如果它们出现在obj中包含的字符串中。否则,在json字符串中将转义所有这些字符

python默认编码格式: utf-8

2.2在转换为json格式时,建议设置多层嵌套的数据,以体现json数据的层级结构,这样才能更清晰地展示json数据的优点和高度嵌套的效果。

2.3 json数据的优点:

其具有良好的层级结构和易读性,这种数据结构之所以被广泛应用,是因为它能够灵活地表示复杂的数据关系,易于解析和处理。json数据结构的设计使得数据之间的关联性和层次关系更加清晰,便于数据交换和存储,同时也易于理解和操作。

  • 38
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python编程读取test.csv文件,并将其转换JSON格式文件,保存为out.json。 首先,我们需要使用CSV模块来读取CSV文件。然后,使用json模块将CSV数据转换JSON格式。最后,将JSON数据写入out.json文件中。 以下是实现此过程的代码示例: ```python import csv import json def csv_to_json(csv_file, json_file): data = [] with open(csv_file, 'r', encoding='utf-8') as file: reader = csv.DictReader(file) for row in reader: data.append(row) with open(json_file, 'w', encoding='utf-8') as file: json.dump(data, file, ensure_ascii=False, indent=4) csv_file = "test.csv" json_file = "out.json" csv_to_json(csv_file, json_file) ``` 在上述代码中,我们定义了一个名为`csv_to_json`的函数,该函数接收CSV文件JSON文件文件名作为参数。该函数首先创建一个空列表`data`用于存储CSV数据。 然后,我们使用`open`函数打开CSV文件,并使用`csv.DictReader`读取CSV数据。通过遍历读取器对象的行,我们将每一行数据添加到`data`列表中。 接下来,使用`open`函数打开JSON文件并以写入模式打开该文件。然后,使用`json.dump`将`data`列表中的数据写入JSON文件中。`ensure_ascii=False`参数用于确保JSON文件中的中文字符以正确的编码显示。`indent=4`参数用于添加缩进和漂亮的格式。 最后,我们调用`csv_to_json`函数,并传递"test.csv"和"out.json"作为参数。这将读取"test.csv"文件的数据,将其转换JSON格式,并将其保存在"out.json"文件中。 请注意,此代码示例假设CSV文件中的首行是字段名称。如果CSV文件中没有首行字段名称,则需要对代码进行适当的修改以处理此情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值