- JSON简介
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Python中,使用
json
模块来处理JSON数据。 - JSON支持的数据类型主要有对象(在Python中类似于字典)、数组(在Python中类似于列表)、字符串、数字、布尔值和
null
。
- JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Python中,使用
- 将Python对象转换为JSON字符串(序列化)
- 基本用法
- 首先要导入
json
模块。例如,将一个Python字典转换为JSON字符串,可以使用json.dumps()
函数。
import json data = {"name": "John", "age": 30, "city": "New York"} json_str = json.dumps(data) print(json_str)
- 输出结果是
{"name": "John", "age": 30, "city": "New York"}
,这是一个JSON格式的字符串。
- 首先要导入
- 格式化输出
json.dumps()
函数还有一些可选参数。例如,可以使用indent
参数来使输出的JSON字符串更易读。
import json data = {"name": "John", "age": 30, "city": "New York"} json_str = json.dumps(data, indent = 4) print(json_str)
- 此时输出的JSON字符串会有缩进,看起来像这样:
{ "name": "John", "age": 30, "city": "New York" }
- 处理特殊数据类型
- 如果Python对象中有一些特殊的数据类型,比如
set
(集合),JSON本身没有对应的类型。json.dumps()
函数会抛出一个类型错误。在这种情况下,需要先将集合转换为列表等JSON支持的类型。
import json data = {"fruits": {"apple", "banana", "cherry"}} data["fruits"] = list(data["fruits"]) json_str = json.dumps(data) print(json_str)
- 如果Python对象中有一些特殊的数据类型,比如
- 基本用法
- 将JSON字符串转换为Python对象(反序列化)
- 基本用法
- 使用
json.loads()
函数可以将JSON字符串转换为Python对象。
import json json_str = '{"name": "John", "age": 30, "city": "New York"}' data = json.loads(json_str) print(data) print(data["name"])
- 输出的
data
是一个Python字典,可以像操作普通字典一样获取其中的值。
- 使用
- 处理JSON数组
- 如果JSON字符串是一个数组,
json.loads()
会将其转换为Python列表。
import json json_str = '[{"name": "John", "age": 30}, {"name": "Alice", "age": 25}]' data = json.loads(json_str) print(data) print(data[0]["name"])
- 输出的
data
是一个包含两个字典的Python列表。
- 如果JSON字符串是一个数组,
- 基本用法
- 从文件中读取和写入JSON数据
- 写入JSON数据到文件
- 可以使用
json.dump()
函数将Python对象写入文件。
import json data = {"name": "John", "age": 30, "city": "New York"} with open("data.json", "w") as f: json.dump(data, f)
- 这样就将
data
字典以JSON格式写入了名为data.json
的文件中。
- 可以使用
- 从文件中读取JSON数据
- 使用
json.load()
函数从文件中读取JSON数据并转换为Python对象。
import json with open("data.json", "r") as f: data = json.load(f) print(data)
- 这会读取
data.json
文件中的JSON数据并转换为Python字典,然后可以在程序中使用这个字典。
- 使用
- 写入JSON数据到文件