Python中JSON的使用方法(超详细)

  • Post category:Python

Python中JSON的使用方法(超详细)

什么是JSON?

JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它以易于人类阅读的文本格式存储数据,广泛应用于前后端数据通信、配置文件、日志记录等场景。相比XML等传统数据格式,JSON更简洁、易于解析和生成。

JSON数据结构

JSON数据由若干键值对组成,每个键值对由冒号“:”分隔,不同键值对之间用逗号“,”分隔。JSON支持的数据类型有:

  • 对象(object):以花括号“{}”包围的键值对集合。
  • 数组(array):以方括号“[]”包围的元素集合。
  • 字符串(string):由双引号“””包围的Unicode字符序列。
  • 数值(number):整数、浮点数或科学计数法表示的数值。
  • 布尔(boolean):值为true或false。
  • 空值(null):值为null。

下面是一个JSON数据结构的例子:

{
    "name": "Jack",
    "age": 25,
    "address": {
        "city": "Beijing",
        "street": "Chang'an Avenue"
    },
    "skills": ["Python", "Java", "JavaScript"]
}

Python中的JSON解析库

Python内置了json模块,用于处理JSON数据的解析和生成。json模块提供了两个主要的函数:

  • json.loads(json_str):将JSON字符串解析为Python对象。
  • json.dumps(py_obj):将Python对象序列化为JSON字符串。

JSON字符串解析为Python对象

下面通过一个例子来演示如何将JSON字符串解析为Python对象。

import json

json_str = '{"name": "Jack", "age": 25, "skills": ["Python", "Java", "JavaScript"]}'
py_obj = json.loads(json_str)
print(py_obj)

输出结果为:

{'name': 'Jack', 'age': 25, 'skills': ['Python', 'Java', 'JavaScript']}

注意,json.loads()函数返回的是Python的基本数据类型,如字典、列表、字符串等,而不是特定的JSON解析对象。

Python对象序列化为JSON字符串

下面通过一个例子来演示如何将Python对象序列化为JSON字符串。

import json

py_obj = {
    'name': 'Jack',
    'age': 25,
    'skills': ['Python', 'Java', 'JavaScript']
}
json_str = json.dumps(py_obj)
print(json_str)

输出结果为:

{"name": "Jack", "age": 25, "skills": ["Python", "Java", "JavaScript"]}

示例:从文件读取JSON数据

下面通过一个例子来演示如何从文件读取JSON数据。假设有一个JSON文件data.json,内容如下:

{
    "name": "Jack",
    "age": 25,
    "skills": ["Python", "Java", "JavaScript"]
}

可以按照下面的方式读取和解析这个文件:

import json

with open('data.json', 'r') as f:  # 以读模式打开文件
    json_str = f.read()           # 读取文件内容为字符串
    py_obj = json.loads(json_str) # 解析JSON字符串为Python对象
    print(py_obj)                 # 打印Python对象

输出结果与前面的例子相同。

示例:将Python对象存储为JSON文件

下面通过一个例子来演示如何将Python对象存储为JSON文件。假设有一个Python对象py_obj,内容如下:

{
    'name': 'Jack',
    'age': 25,
    'skills': ['Python', 'Java', 'JavaScript']
}

可以按照下面的方式将它存储为JSON文件:

import json

with open('data.json', 'w') as f:  # 以写模式打开文件
    json_str = json.dumps(py_obj)  # 将Python对象序列化为JSON字符串
    f.write(json_str)              # 将JSON字符串写入文件

这样就可以创建一个文件data.json,内容为Python对象转化后的JSON字符串。

以上就是Python中JSON的使用方法的完整攻略,相信你已经可以熟练地使用json模块来解析和生成JSON数据了。