Tags: 数据类型 AI 人工智能

Python中使用JSON模块的实战教程

JSON是一种轻量级的数据交换格式,它的全称是 JavaScript Object Notation(JavaScript对象表示法)。在Python中,我们可以利用内置的json模块轻松实现JSON数据的解析和生成。

1. JSON是什么?

  • JSON是一种纯文本格式,常用于存储和传输数据。
  • JSON数据通常以键值对的方式来表示。

2. Python如何处理JSON数据?

Python标准库提供了内置的json模块,能够非常方便地处理JSON数据。

import json

2.1 将JSON转换为Python对象(解析JSON)

如果你有一个JSON字符串,可以用json.loads()方法转换为Python字典:

import json

# JSON格式的字符串
json_str = '{ "name":"张三", "age":30, "city":"北京"}'

# 转换为Python字典
data = json.loads(json_str)

# 访问字典中的值
print(data["name"])  # 输出:张三

2.2 将Python对象转换为JSON格式字符串

你也可以使用json.dumps()方法,将Python对象转换为JSON字符串:

import json

# Python字典对象
data = {
    "name": "李四",
    "age": 25,
    "city": "上海"
}

# 转换为JSON格式的字符串
json_str = json.dumps(data)

print(json_str)
# 输出:{"name": "李四", "age": 25, "city": "上海"}

3. Python和JSON数据类型对照表

Python对象与JSON之间的数据类型转换如下:

Python类型JSON类型
dictObject(对象)
list、tupleArray(数组)
strString(字符串)
int、floatNumber(数字)
Truetrue
Falsefalse
Nonenull

3.1 综合示例

import json

info = {
    "姓名": "王五",
    "年龄": 30,
    "是否已婚": True,
    "子女": ("小明", "小红"),
    "宠物": None,
    "汽车": [
        {"品牌": "宝马", "价格": 35.5},
        {"品牌": "奥迪", "价格": 40.2}
    ]
}

json_info = json.dumps(info, indent=4, ensure_ascii=False)
print(json_info)

4. 格式化JSON数据

json.dumps()提供了一些额外的参数,使JSON数据更易阅读:

  • indent:设置缩进的空格数,使输出格式更整齐。
  • separators:设置JSON元素之间的分隔符(一般默认即可)。
  • sort_keys:是否对JSON数据中的键进行排序。
import json

data = {"b": 1, "a": 2, "c": 3}

formatted_json = json.dumps(data, indent=2, sort_keys=True)
print(formatted_json)

5. 总结

通过Python内置的json模块,可以快速方便地处理JSON数据,实现Python对象与JSON格式字符串之间的自由转换。在日常开发中,经常用于数据存储和网络传输,学会这些知识能极大地提升你的编程效率。