1. 简介
Python中,字典和json是两种常用的数据结构。字典即为Python自带的一种无序的键值对数据集合,可以用来存储丰富的数据类型,如数字、字符串、列表和其他字典。而JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,其规定了一种简洁的表示方法,用于存储和传输数据。
2. 字典转json
2.1. 使用json模块
Python内置的json模块提供了很方便的字典转json的方法,可以使用dumps函数将字典转换为json字符串,该函数有几个参数:
dic:需要转换的字典
skipkeys:是否跳过不可序列化的键,默认为False
ensure_ascii:是否按ASCII编码输出,默认为True
indent:输出格式化的缩进空格数,如indent=4将会按照缩进4个空格格式化输出,默认为None
separators:为不同类型的输入分隔符,默认为(',', ':')
示例代码如下:
import json
# 定义一个字典
dic = {
'name': 'Alex',
'age': 25,
'hobby': ['swimming', 'reading'],
'contact': {
'email': 'alex@example.com',
'phone': '1234567890'
}
}
# 转换为json字符串
json_str = json.dumps(dic, indent=4, ensure_ascii=False)
# 输出json字符串
print(json_str)
该段代码输出的结果如下:
{
"name": "Alex",
"age": 25,
"hobby": [
"swimming",
"reading"
],
"contact": {
"email": "alex@example.com",
"phone": "1234567890"
}
}
可以看到,字典中的键值对已经按照json格式输出了。
2.2. 使用简单json模块
除了Python内置的json模块外,还有一种名为简单json的第三方模块,需要通过pip安装。它提供了与json模块相同的功能,但封装更简单。
使用方式如下:
import simplejson as json
# 定义一个字典
dic = {
'name': 'Alex',
'age': 25,
'hobby': ['swimming', 'reading'],
'contact': {
'email': 'alex@example.com',
'phone': '1234567890'
}
}
# 转换为json字符串
json_str = json.dumps(dic, indent=4, ensure_ascii=False)
# 输出json字符串
print(json_str)
该段代码的输出与前面的代码相同。
3. json转字典
3.1. 使用json模块
与字典转json类似,Python的json模块也提供了json字符串转字典的方法,可以使用loads函数将json字符串转换为字典,该函数只接收一个参数——json字符串。
示例代码如下:
import json
# 定义一个json字符串
json_str = '{"name": "Alex", "age": 25, "hobby": ["swimming", "reading"], "contact": {"email": "alex@example.com", "phone": "1234567890"}}'
# 转换为字典
dic = json.loads(json_str)
# 输出字典
print(dic)
输出结果如下:
{'name': 'Alex', 'age': 25, 'hobby': ['swimming', 'reading'], 'contact': {'email': 'alex@example.com', 'phone': '1234567890'}}
3.2. 使用简单json模块
简单json模块也可以实现将json字符串转换为字典的功能,使用方式基本与json模块相同。
示例代码如下:
import simplejson as json
# 定义一个json字符串
json_str = '{"name": "Alex", "age": 25, "hobby": ["swimming", "reading"], "contact": {"email": "alex@example.com", "phone": "1234567890"}}'
# 转换为字典
dic = json.loads(json_str)
# 输出字典
print(dic)
该段代码的输出与前面的代码输出结果相同。
4. 小结
本文主要总结了Python中字典与json之间的转换方法。字典可以使用内置的json模块或者第三方模块简单json实现转换。json字符串转字典同样适用这两个模块,只是函数名称不同。熟练运用这些方法,可以方便地处理字典和json数据。