Python 字典和 JSON 都是用于存储和传输数据的常用结构。
概述
- Python 字典:一种包含键值对的数据结构,属于 Python 内置的数据类型。
- JSON(JavaScript Object Notation):一种轻量级的数据交换格式,常用于在网络上传输数据,以文本格式表示。JSON 是语言无关的,但目前在多数编程语言中都有很好的支持。
比较
特性 | Python 字典 | JSON |
---|---|---|
数据格式 | Python 内置数据类型 | 文本格式,可跨编程语言和平台使用 |
用途 | 存储和操作 Python 代码中的数据 | 数据交换和传输 |
键的类型 | 键可以是任何不可变类型(如字符串、整数、元组等) | 键必须是字符串 |
值的类型 | 值可以是任何数据类型 | 值可以是字符串、数值、对象、数组、布尔值或 null |
表示方法 | d = {"key": "value"} |
JSON 字符串:{"key": "value"} |
嵌套 | 可以嵌套任意复杂的 Python 对象 | 可以嵌套多个 JSON 对象 |
可读性 | 是 Python 程序的一部分 | 是独立于任何编程语言的文本 |
标准化 | Python 特有,不通用 | 是一种广泛使用的标准化格式 |
示例对比
在 Python 中,常使用 json
模块来实现 Python 字典和 JSON 之间的转换。
序列化(将 Python 字典转换为 JSON 字符串)
python
import json
data = {
"name": "John",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"],
"address": {
"line1": "123 Main St",
"city": "New York",
"zipcode": "10001"
}
}
json_string = json.dumps(data)
print(json_string)
反序列化(将 JSON 字符串转换为 Python 字典)
python
import json
json_string = '{"name": "John", "age": 30, "is_student": false, "courses": ["Math", "Science"], "address": {"line1": "123 Main St", "city": "New York", "zipcode": "10001"}}'
data = json.loads(json_string)
print(data)