Menu
CoddyTech

json 模块

Coddy Python JSON 课程的第 3 课,共 9 课。

json 模块是 Python 的内置库,提供了用于处理 JSON 数据的函数。它可以将 Python 对象编码为 JSON 字符串,也可以将 JSON 字符串解码为 Python 对象。

导入 json 模块

要在 Python 中使用 JSON 模块,你需要先导入它:


import json

主要函数

json 模块提供了四个主要函数:

  1. json.dumps():将 Python 对象转换为 JSON 字符串
  2. json.loads():解析 JSON 字符串并返回 Python 对象
  3. json.dump():将 Python 对象写入 JSON 文件
  4. json.load():读取 JSON 文件并返回 Python 对象

基本用法

下面通过一个简单示例,看看如何使用 json.dumps() 和 json.loads():


import json

# Python 字典
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# 将 Python 对象转换为 JSON 字符串
json_string = json.dumps(data)
print(json_string)

# 将 JSON 字符串解析回 Python 对象
parsed_data = json.loads(json_string)
print(parsed_data)

无论你是使用 API、配置文件,还是在不同系统之间交换数据,这个模块都是在 Python 中处理 JSON 数据的重要工具。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

创建一个程序,演示 json 模块的四个主要函数:dumps()、loads()、dump() 和 load()。

  1. 创建一个 Python 字典,包含以下键值对:
    • "name": "Python"
    • "year": 1991
    • "creator": "Guido van Rossum"
    • "is_oop": true
    • "versions": ["2.7", "3.6", "3.7", "3.8", "3.9"]
  2. 使用 json.dumps() 将这个字典转换为 JSON 字符串,并打印结果。
  3. 使用 json.loads() 将 JSON 字符串解析回 Python 对象,并打印对象的类型。
  4. 使用 json.dump() 将字典写入名为 "python_info.json" 的文件。
  5. 使用 json.load() 将 "python_info.json" 的内容读取到新的 Python 对象中。
  6. 打印这个新对象中与 "creator" 键关联的值。

将提供以下输入:


Python
1991
Guido van Rossum
true
2.7,3.6,3.7,3.8,3.9

注意:版本输入是一个逗号分隔的字符串,应在 Python 字典中转换为列表。

亲手试试

import json

# 读取输入
name = input()
year = int(input())
creator = input()
is_oop = input().lower() == 'true'
versions = input().split(',')

# 创建字典
python_info = {
    "name": name,
    "year": year,
    "creator": creator,
    "is_oop": is_oop,
    "versions": versions
}

# TODO: 在下方编写代码,完成挑战
# 1. 使用 json.dumps() 将字典转换为 JSON 字符串
# 2. 使用 json.loads() 将 JSON 字符串解析为 Python 对象
# 3. 使用 json.dump() 将字典写入名为 "python_info.json" 的文件
# 4. 使用 json.load() 读取 "python_info.json" 的内容
# 5. 打印加载的对象中与 "creator" 键关联的值

# 在这里打印你的结果
print()  # TODO: 将此处替换为你的输出

Python JSON中的所有课

自己练习: Python 在线编译器