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类型 |
---|---|
dict | Object(对象) |
list、tuple | Array(数组) |
str | String(字符串) |
int、float | Number(数字) |
True | true |
False | false |
None | null |
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格式字符串之间的自由转换。在日常开发中,经常用于数据存储和网络传输,学会这些知识能极大地提升你的编程效率。