Python入门教程(二十八)Python中的JSON
1. JSON简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。JSON是基于JavaScript语言的一个子集,因此在很多编程语言中都可以按照JSON的标准进行解析和生成。
JSON中定义了两种数据结构:对象和数组。对象是由键值对构成,键和值之间使用冒号“:”分隔,键值对之间使用逗号“,”分隔,最外层需要用大括号“{}”包裹;数组是由值构成,值之间使用逗号“,”分隔,最外层需要用中括号“[]”包裹。
下面是一个JSON数据的示例:
{
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
2. 使用Python处理JSON
Python内置了一个名为json的模块,它提供了loads()和dumps()两个函数,用于JSON格式的编码和解码。
2.1 loads()函数
loads()函数可以将JSON格式的字符串解码为Python对象。例如,我们有如下的JSON字符串:
{
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
我们可以使用loads()函数将其解码为Python中的字典类型,并进行相关操作:
import json
json_str = '{"name": "Tom", "age": 18, "hobbies": ["reading", "running", "swimming"], "address": {"city": "Beijing", "street": "Xueyuan Road"}}'
data = json.loads(json_str)
print(data['name']) # Tom
print(data['hobbies']) # ['reading', 'running', 'swimming']
print(data['address']['city']) # Beijing
2.2 dumps()函数
dumps()函数可以将Python对象编码为JSON格式的字符串。例如,我们有一个Python字典对象,其内容如下:
data = {
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
我们可以使用dumps()函数将其编码为JSON字符串,并进行相关操作:
import json
json_str = json.dumps(data)
print(json_str) # {"name": "Tom", "age": 18, "hobbies": ["reading", "running", "swimming"], "address": {"city": "Beijing", "street": "Xueyuan Road"}}
3. 示例
3.1 将Python对象保存为JSON文件
假设我们有如下的Python字典对象:
data = {
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
我们可以使用dumps()函数将其编码为JSON格式的字符串,并将其保存到文件中:
import json
data = {
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
json_str = json.dumps(data)
with open('data.json', 'w') as f:
f.write(json_str)
这样,我们就将Python对象保存为了JSON格式的文件。
3.2 从JSON文件中读取数据并解码为Python对象
假设我们有如下的JSON格式的数据,保存在一个名为data.json的文件中:
{
"name": "Tom",
"age": 18,
"hobbies": ["reading", "running", "swimming"],
"address": {
"city": "Beijing",
"street": "Xueyuan Road"
}
}
我们可以使用loads()函数将其解码为Python对象,并进行相关操作:
import json
with open('data.json', 'r') as f:
json_str = f.read()
data = json.loads(json_str)
print(data['name']) # Tom
print(data['hobbies']) # ['reading', 'running', 'swimming']
print(data['address']['city']) # Beijing
这样,我们就从JSON文件中读取了数据,并将其解码为了Python对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python入门教程(二十八)Python中的JSON - Python技术站