📜  如何解码 json python (1)

📅  最后修改于: 2023-12-03 14:53:16.772000             🧑  作者: Mango

如何解码 JSON Python

JSON(JavaScript Object Notation)是一种用于存储和传输数据的轻量级格式。Python中内置了处理JSON格式的模块——json。本文将介绍如何使用Python中的json模块解码JSON。

1. 使用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)对象。

2. 处理JSON文件

如果要处理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'}
3. 使用json.decoder.JSONDecodeError处理解码错误

如果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解码的方法。