Python 的 json 模块可以帮助你把数据在两种格式之间转换
Python 的 json
模块可以帮助你把数据在两种格式之间转换:
-
从 Python 数据结构转换成 JSON 字符串
- 比如你有一个字典
{"name": "Alice", "age": 30}
,你可以用json.dumps()
把它转换成一个 JSON 格式的字符串"{"name": "Alice", "age": 30}"
。 - 为什么要转换? 当你需要将数据发送给 API 或存储在文件中时,通常需要用标准的文本格式(JSON),因为这种格式容易在不同系统和编程语言之间传递和解析。
- 比如你有一个字典
-
从 JSON 字符串转换回 Python 数据结构
- 举个例子:假设你从一个 API 得到了一个返回值:
'{"location": "las vegas"}'
,这其实是一个字符串,而不是 Python 的字典。如果你直接使用这个字符串,就没办法像访问字典那样通过键(例如"location"
) 直接取值。 - 使用
json.loads()
函数可以把这个 JSON 字符串转换成 Python 的字典:import json json_str = '{"location": "las vegas"}' data = json.loads(json_str) print(data["location"]) # 输出: las vegas
- 为什么要转换? 转换后,你就能方便地访问和操作数据了。字符串是不具备像字典那样的“键值对”特性的,你需要把它变成字典或列表,才能轻松取出你需要的信息。
- 举个例子:假设你从一个 API 得到了一个返回值:
详细举例说明:
- 场景:你调用了一个天气 API,API 返回的数据是 JSON 格式的字符串,内容可能像这样:
{"location": "las vegas", "temperature": 28, "humidity": 50}
- 问题:如果你直接拿到这个字符串,想要知道
temperature
的值,就得自己解析这个字符串,这样很麻烦。 - 解决方法:你使用
json.loads()
将字符串转换成 Python 的字典,然后就可以用键名直接获取值:import json response_str = '{"location": "las vegas", "temperature": 28, "humidity": 50}' response_dict = json.loads(response_str) # 现在你可以这样访问温度: temp = response_dict["temperature"] print("温度是:", temp) # 输出: 温度是: 28
- 总结:转换的目的是把 API 返回的文本格式数据变成 Python 可以直接操作的数据结构,从而简化数据提取和处理的过程。
简言之,就是把看起来像“字符串文本”的数据,变成 Python 程序能直接用的“字典”或“列表”,方便你通过键或索引拿到数据。