第十四章:JSON和CSV格式详解及Python操作

    在数据处理和开发工作中,JSONCSV是两种非常常见的数据格式。它们各有特点,适用于不同的场景。本文将分别介绍这两种格式的产生原因、应用场景,并结合Python讲解如何操作这两种文件格式,最后用表格总结它们的常用操作及特性资源绑定附上完整资源供读者参考学习!

一、JSON格式

1. 什么是JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但独立于语言,可以在多种编程语言中使用。

2. JSON的产生原因

  • 跨平台数据交换:在Web开发中,前后端需要传递数据,JSON作为一种轻量级格式,可以方便地在不同语言和平台之间传递数据

  • 结构化数据表示:JSON可以很好地表示嵌套结构,适合存储复杂的数据对象。

3. JSON的应用场景

  • API数据传输:RESTful API通常使用JSON格式传递数据。

  • 配置文件:许多应用程序使用JSON作为配置文件格式。

  • 前端与后端交互:前端JavaScript可以直接解析JSON数据,方便数据展示。

4. Python操作JSON文件

4.1 读取JSON文件

Python

​
import json

# 打开并读取JSON文件
with open('data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

# 使用读取的数据
print(data)
print(data['name'])  # 访问具体字段

​

4.2 写入JSON文件

Python

import json

# 创建一个字典
data = {
    'name': '张三',
    'age': 30,
    'city': '北京'
}

# 将字典写入JSON文件
with open('person.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

5. 实例:创建一个JSON文件作为演示

以下是一个完整的示例,展示如何在Python中创建一个JSON文件,并解释每一步的操作。

5.1 创建一个Python字典

首先,我们创建一个包含一些数据的Python字典。这个字典将被转换为JSON格式

Python

# 创建一个包含个人信息的字典
person = {
    "name": "张三",
    "age": 30,
    "city": "北京",
    "is_student": False,
    "hobbies": ["阅读", "旅行", "编程"],
    "address": {
        "street": "长安街123号",
        "zip_code": "100000"
    }
}

5.2 将字典写入JSON文件

使用Python的json模块将字典写入一个JSON文件。

Python

import json
# 创建一个包含个人信息的字典
person = {
    "name": "张三",
    "age": 30,
    "city": "北京",
    "is_student": False,
    "hobbies": ["阅读", "旅行", "编程"],
    "address": {
        "street": "长安街123号",
        "zip_code": "100000"
    }
}
# 将字典写入JSON文件
with open('person.json', 'w', encoding='utf-8') as file:
    json.dump(person, file, ensure_ascii=False, indent=4)

5.3 运行代码

运行上述代码后,会在当前目录下生成一个名为person.json的文件。打开这个文件,你会看到如下内容:

JSON

{
    "name": "张三",
    "age": 30,
    "city": "北京",
    "is_student": false,
    "hobbies": [
        "阅读",
        "旅行",
        "编程"
    ],
    "address": {
        "street": "长安街123号",
        "zip_code": "100000"
    }
}

5.4 验证和使用JSON文件

你可以读取这个JSON文件并使用其中的数据:

Python

import json

# 读取JSON文件
with open('person.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

# 使用读取的数据
print(data)
print(data['name'])  # 输出:张三
print(data['hobbies'][0])  # 输出:阅读
print(data['address']['street'])  # 输出:长安街123号

二、CSV格式

1. 什么是CSV?

CSV(Comma-Separated Values)是一种简单的文本文件格式,用于存储表格数据,如电子表格或数据库中的数据。每一行是一个数据记录,每个记录由一个或多个字段组成,字段之间以逗号分隔。

2. CSV的产生原因

  • 表格数据存储:CSV格式简单,适合存储表格化数据

  • 数据交换:许多应用程序支持CSV导入导出,方便数据交换。

3. CSV的应用场景

  • 数据导入导出Excel、Google Sheets等工具支持CSV格式。

  • 数据分析:Python的Pandas库可以方便地处理CSV文件。

  • 日志记录:某些系统会以CSV格式记录日志。

4. Python操作CSV文件

4.1 读取CSV文件

Python

​
import csv

# 打开并读取CSV文件
with open('data.csv', 'r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)  # 每行是一个列表

​
4.2 使用DictReader读取CSV文件(带表头)

Python

​
import csv

with open('data.csv', 'r', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row['name'], row['age'])  # 按列名访问

​
4.3 写入CSV文件

Python

import csv

# 创建数据
data = [
    ['name', 'age', 'city'],
    ['张三', 30, '北京'],
    ['李四', 25, '上海']
]

# 写入CSV文件
with open('2001-2017年北京市水资源情况信息.csv', 'w', encoding='GBK', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

5. 实例:使用Pandas处理CSV文件

Python

​
import pandas as pd

# 读取CSV文件
df = pd.read_csv('data.csv')

# 处理数据
print(df.head())  # 查看前几行
print(df.describe())  # 数据统计

# 筛选数据
filtered_data = df[df['age'] > 25]
print(filtered_data)

​

三、总结:JSON与CSV的常用操作及特性对比

特性JSONCSV
文件结构嵌套结构(对象和数组)表格结构(行和列)
适用场景API数据、配置文件、复杂嵌套数据表格数据、数据导入导出、简单数据存储
文件扩展名.json.csv
读取方式json.load()csv.reader() 或 csv.DictReader()
写入方式json.dump()csv.writer()
数据类型支持支持多种数据类型(字符串、数字、布尔值等)主要支持字符串,需自行解析数据类型
文件大小通常较大(包含键名和结构)通常较小(仅包含值)
可读性结构清晰,适合人类阅读简单直观,适合表格化数据
Python库支持json模块csv模块、pandas

四、总结

JSON和CSV各有优势,选择哪种格式取决于具体需求:

  • 如果需要处理结构化、嵌套的数据,或者用于API通信,JSON是更好的选择。

  • 如果需要处理表格化数据,或者进行数据导入导出,CSV更适合。

   通过Python的标准库(jsoncsv模块)以及第三方库(如pandas),我们可以很方便地操作这两种格式的文件。希望本文能帮助你更好地理解和使用JSON和CSV格式!资源绑定附上完整资源供读者参考学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值