
在数据处理和开发工作中,JSON和CSV是两种非常常见的数据格式。它们各有特点,适用于不同的场景。本文将分别介绍这两种格式的产生原因、应用场景,并结合Python讲解如何操作这两种文件格式,最后用表格总结它们的常用操作及特性。资源绑定附上完整资源供读者参考学习!
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但独立于语言,可以在多种编程语言中使用。
Python
import json
# 打开并读取JSON文件
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
# 使用读取的数据
print(data)
print(data['name']) # 访问具体字段

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)
以下是一个完整的示例,展示如何在Python中创建一个JSON文件,并解释每一步的操作。
首先,我们创建一个包含一些数据的Python字典。这个字典将被转换为JSON格式。
Python
# 创建一个包含个人信息的字典
person = {
"name": "张三",
"age": 30,
"city": "北京",
"is_student": False,
"hobbies": ["阅读", "旅行", "编程"],
"address": {
"street": "长安街123号",
"zip_code": "100000"
}
}
使用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)
运行上述代码后,会在当前目录下生成一个名为person.json的文件。打开这个文件,你会看到如下内容:
JSON
{
"name": "张三",
"age": 30,
"city": "北京",
"is_student": false,
"hobbies": [
"阅读",
"旅行",
"编程"
],
"address": {
"street": "长安街123号",
"zip_code": "100000"
}
}你可以读取这个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(Comma-Separated Values)是一种简单的文本文件格式,用于存储表格数据,如电子表格或数据库中的数据。每一行是一个数据记录,每个记录由一个或多个字段组成,字段之间以逗号分隔。
Python
import csv
# 打开并读取CSV文件
with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row) # 每行是一个列表


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']) # 按列名访问

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)
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 |
|---|---|---|
文件结构 | 嵌套结构(对象和数组) | 表格结构(行和列) |
适用场景 | API数据、配置文件、复杂嵌套数据 | 表格数据、数据导入导出、简单数据存储 |
文件扩展名 | .json | .csv |
读取方式 | json.load() | csv.reader() 或 csv.DictReader() |
写入方式 | json.dump() | csv.writer() |
数据类型支持 | 支持多种数据类型(字符串、数字、布尔值等) | 主要支持字符串,需自行解析数据类型 |
文件大小 | 通常较大(包含键名和结构) | 通常较小(仅包含值) |
可读性 | 结构清晰,适合人类阅读 | 简单直观,适合表格化数据 |
Python库支持 | json模块 | csv模块、pandas库 |
JSON和CSV各有优势,选择哪种格式取决于具体需求:
通过Python的标准库(json和csv模块)以及第三方库(如pandas),我们可以很方便地操作这两种格式的文件。希望本文能帮助你更好地理解和使用JSON和CSV格式!资源绑定附上完整资源供读者参考学习!