Python中json格式数据的编码与解码方法详解
什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。JSON格式数据主要用于前后端数据传输,具有体积小、易于解析、易于传输的特点。
在Python中,可以通过json模块对JSON格式数据进行编码和解码。
JSON模块常用方法
json.dumps()
json.dumps()
函数用于将Python对象编码成JSON格式数据。
import json
# Python对象
x = {
"name": "Alice",
"age": 25,
"married": False,
"hobbies": ["reading", "traveling"],
"address": {
"country": "China",
"city": "Shanghai"
}
}
# 将Python对象编码成JSON格式数据
y = json.dumps(x)
print(y)
输出结果如下:
{"name": "Alice", "age": 25, "married": false, "hobbies": ["reading", "traveling"], "address": {"country": "China", "city": "Shanghai"}}
在编码过程中,需要注意以下几点:
- 字典将被编码为对象,列表将被编码为数组
- 字符串会被双引号包围,必须为UTF-8编码
- 数值、布尔值、None会被直接映射为相应的JSON类型
json.loads()
json.loads()
函数用于将JSON格式数据解码成Python对象。
import json
# JSON格式数据
x = '{"name": "Alice", "age": 25, "married": false, "hobbies": ["reading", "traveling"], "address": {"country": "China", "city": "Shanghai"}}'
# 将JSON格式数据解码成Python对象
y = json.loads(x)
print(y)
输出结果如下:
{'name': 'Alice', 'age': 25, 'married': False, 'hobbies': ['reading', 'traveling'], 'address': {'country': 'China', 'city': 'Shanghai'}}
在解码过程中,需要注意以下几点:
- JSON格式数据必须为UTF-8编码
- 对象将被解码为字典,数组将被解码为列表
- 数字将被解码为int类型或float类型,字符串将被解码为str类型,布尔值将被解码为bool类型,null将被解码为None
JSON编码与解码示例
下面提供两条JSON编码与解码的示例。
示例一:编码和解码一个文件
编写一个Python脚本,实现对一个JSON文件的编码和解码。
JSON文件(data.json)内容如下:
{
"name": "Bob",
"age": 30,
"married": true,
"hobbies": ["swimming", "cooking"],
"address": {
"country": "USA",
"city": "New York"
}
}
编写脚本如下:
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
with open('data.json', 'w') as f:
json.dump(data, f)
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
输出结果如下:
{'name': 'Bob', 'age': 30, 'married': True, 'hobbies': ['swimming', 'cooking'], 'address': {'country': 'USA', 'city': 'New York'}}
{'name': 'Bob', 'age': 30, 'married': True, 'hobbies': ['swimming', 'cooking'], 'address': {'country': 'USA', 'city': 'New York'}}
在上述代码中,load()
函数将JSON格式数据从文件中加载到Python对象中,dump()
函数将Python对象编码成JSON格式数据并保存到文件中。
示例二:编码和解码一个字符串
编写一个Python脚本,实现对一个JSON格式字符串的编码和解码。
编写脚本如下:
import json
# 编码一个JSON格式字符串
x = {
"name": "Cindy",
"age": 27,
"married": False,
"hobbies": ["painting", "dancing"],
"address": {
"country": "UK",
"city": "London"
}
}
y = json.dumps(x)
print(y)
# 解码一个JSON格式字符串
z = json.loads(y)
print(z)
输出结果如下:
{"name": "Cindy", "age": 27, "married": false, "hobbies": ["painting", "dancing"], "address": {"country": "UK", "city": "London"}}
{'name': 'Cindy', 'age': 27, 'married': False, 'hobbies': ['painting', 'dancing'], 'address': {'country': 'UK', 'city': 'London'}}
在上述代码中,dumps()
函数将Python对象编码成JSON格式字符串,loads()
函数将JSON格式字符串解码成Python对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中json格式数据的编码与解码方法详解 - Python技术站