📅  最后修改于: 2023-12-03 14:53:16.772000             🧑  作者: Mango
JSON(JavaScript Object Notation)是一种用于存储和传输数据的轻量级格式。Python中内置了处理JSON格式的模块——json。本文将介绍如何使用Python中的json模块解码JSON。
使用json模块中的loads函数可以将JSON格式的字符串转换成Python对象。下面是一个简单的例子:
import json
json_string = '{"name": "John", "age": 30, "city": "New York"}'
python_dict = json.loads(json_string)
print(python_dict)
输出结果为:
{'name': 'John', 'age': 30, 'city': 'New York'}
可以看到,json.loads函数将JSON格式的字符串转换成了Python中的字典(dict)对象。
如果要处理JSON格式的文件,可以使用json模块中的load函数。load函数可以将包含JSON格式数据的文件加载到Python对象中。下面是一个简单的例子:
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data)
假设当前工作目录下的data.json文件内容为:
{
"name": "John",
"age": 30,
"city": "New York"
}
运行上述代码后,输出结果同样为:
{'name': 'John', 'age': 30, 'city': 'New York'}
如果JSON格式不规范,例如缺失引号、缺少逗号、单引号等,json模块会抛出json.decoder.JSONDecodeError异常。为了避免程序崩溃,可以使用try...except语句来处理这些异常。下面是一个简单的例子:
import json
json_string = '{name: "John", age: 30, city: "New York"}'
try:
python_dict = json.loads(json_string)
except json.decoder.JSONDecodeError as e:
print('JSONDecodeError:', e)
python_dict = {}
print(python_dict)
运行上述代码,由于JSON格式不规范,json.loads函数抛出了JSONDecodeError异常,try语句块中的程序被中止,执行except语句块中的程序打印错误信息,并将python_dict赋值为空字典。最后输出的结果为:
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
{}
本文介绍了如何使用Python中内置的json模块解码JSON。通过本文的学习,希望可以帮助各位程序员快速掌握JSON解码的方法。