📅  最后修改于: 2023-12-03 14:46:38.048000             🧑  作者: Mango
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,并且易于机器解析和生成。在Python中,可以使用内置的json模块来处理JSON数据。
在使用Python进行JSON编码和解码时,需要先导入json模块。
import json
JSON编码是将Python对象转换为JSON格式的过程。Python的数据类型可以通过json模块进行编码,得到对应的JSON对象。具体方法如下:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
参数说明如下:
返回值为一个JSON格式的str对象。
import json
data = {
'name': 'Tom',
'age': 18,
'gender': 'Male',
'hobbies': ['Reading', 'Running', 'Swimming'],
'address': {
'city': 'Beijing',
'district': 'Haidian',
'street': 'Haidian Street'
}
}
json_str = json.dumps(data, ensure_ascii=False, indent=4, sort_keys=True)
print(json_str)
编码结果如下:
{
"address": {
"city": "Beijing",
"district": "Haidian",
"street": "Haidian Street"
},
"age": 18,
"gender": "Male",
"hobbies": [
"Reading",
"Running",
"Swimming"
],
"name": "Tom"
}
JSON解码是将JSON格式的字符串解析成Python对象的过程。json模块提供了decode方法来完成这个过程。
json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
参数说明如下:
返回值为解码后的Python对象。
import json
json_str = """
{
"address": {
"city": "Beijing",
"district": "Haidian",
"street": "Haidian Street"
},
"age": 18,
"gender": "Male",
"hobbies": [
"Reading",
"Running",
"Swimming"
],
"name": "Tom"
}
"""
data = json.loads(json_str)
print(data)
解码结果如下:
{'address': {'city': 'Beijing', 'district': 'Haidian', 'street': 'Haidian Street'}, 'age': 18, 'gender': 'Male', 'hobbies': ['Reading', 'Running', 'Swimming'], 'name': 'Tom'}
在Python中,还可以通过json模块来读取和写入JSON文件。
with open(filename, 'r', encoding='utf-8') as f:
data = json.load(f)
其中,filename为要读取的JSON文件的路径。返回值为解码后的Python对象。
with open(filename, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
其中,data为要写入JSON文件的Python对象。返回值为None。
本文介绍了Python中json模块的基本用法,包括JSON编码、解码、文件操作等。对于处理JSON格式的数据,使用json模块可以很方便地完成数据的转换和操作。