Python JSON
Python JSON技术文档
什么是JSON
JSON全称是JavaScript Object Notation(JavaScript对象表示法),是一种轻量级的数据交换格式,与XML相同,但更加简单易用,适用于各种应用程序之间的数据通信。它采用类似于C语言的语法,并使用Unicode字符集,因此非常适合网络环境。
JSON的使用
Python为处理JSON数据提供了内置模块,名为“json”。使用这个模块,可以轻松将Python对象转换为JSON对象,反之亦然。
在Python中,JSON对象是Python字典。因此,使用Python操作JSON数据,就相当于操作Python字典。与Python字典类似,JSON对象由键-值对构成,而值的类型可以是字符串、数字、列表、布尔值、null或另一个JSON对象。
将Python对象转换为JSON对象
Python中内置的json模块可以将Python对象转换为JSON对象。使用JSON对象是Python字典,因此,可以使用Python字典表示法来构造JSON。
import json
# Python字典
player = {
"name": "Kobe Bryant",
"age": 41,
"teams": ["Los Angeles Lakers", "ZZ Leiden"],
"retired": True,
"awards": {"MVP": 1, "Finals MVP": 2}
}
# 将Python字典转换为JSON对象
player_json = json.dumps(player)
print(player_json)
输出的结果是:
{"name": "Kobe Bryant", "age": 41, "teams": ["Los Angeles Lakers", "ZZ Leiden"], "retired": true, "awards": {"MVP": 1, "Finals MVP": 2}}
如果需要更好的可读性,可以使用indent
参数指定缩进级别:
player_json = json.dumps(player, indent=2)
print(player_json)
输出结果为:
{
"name": "Kobe Bryant",
"age": 41,
"teams": [
"Los Angeles Lakers",
"ZZ Leiden"
],
"retired": true,
"awards": {
"MVP": 1,
"Finals MVP": 2
}
}
将JSON对象转换为Python对象
使用json模块也可以将JSON对象转换为Python对象。JSON字符串是一个有效的Python字符串,可以使用Python字符串表示法来创建JSON对象。
player_json = '{"name": "Kobe Bryant", "age": 41, "teams": ["Los Angeles Lakers", "ZZ Leiden"], "retired": true, "awards": {"MVP": 1, "Finals MVP": 2}}'
# 将JSON对象转换为Python字典
player_dict = json.loads(player_json)
print(player_dict)
输出结果为:
{
'name': 'Kobe Bryant',
'age': 41,
'teams': ['Los Angeles Lakers', 'ZZ Leiden'],
'retired': True,
'awards': {'MVP': 1, 'Finals MVP': 2}
}
从文件中读取JSON数据
json模块可以从文件中读取JSON数据。在Python中,文件读取是通过open()函数完成的。
假设有一个JSON文件“player.json”,可以使用以下代码从文件读取JSON数据:
import json
# 从文件中读取JSON数据
with open('player.json') as f:
player = json.load(f)
# 打印Python对象
print(player)
将Python对象写入JSON文件
类似地,可以使用json模块将Python对象写入JSON文件。
import json
# Python字典
player = {
"name": "Kobe Bryant",
"age": 41,
"teams": ["Los Angeles Lakers", "ZZ Leiden"],
"retired": True,
"awards": {"MVP": 1, "Finals MVP": 2}
}
# 将Python对象写入JSON文件
with open('player.json', 'w') as f:
json.dump(player, f)
结论
Python的json模块可以非常方便地处理JSON数据。可以使用json模块将Python对象转换为JSON对象,并将JSON对象转换为Python对象。 还可以将JSON数据读取到Python中,将Python对象写入JSON文件。对于需要读写JSON数据的项目,Python提供了一个强大的工具。