json模块提供了两个函数对数据格式转换
json.dumps(): 对数据进行编码
json.loads(): 对数据进行解码
Python类型编码成JSON格式的类型转换表
Python | JSON |
---|---|
dict(字典) | object(对象) |
list(列表), tuple(元组) | array(数组) |
str(字符串‘’或“”) | string(字符串“”) |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
JSON格式解码为Python类型转换对应表
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
下面为常用的格式转换实例:
Python字典类型与JSON对象互相转换
# Python 字典类型转换为 JSON 对象
python_data = {
'name' : 'mcchen',
'blog-url' : 'https://blog.csdn.net/muchong123'
}
json_str = json.dumps(python_data)
print ("Python 原始数据:", repr(python_data))
print ("JSON 对象:", json_str)
结果:
Python 原始数据: {'name': 'mcchen', 'blog-url': 'https://blog.csdn.net/muchong123'}
JSON 对象: {"name": "mcchen", "blog-url": "https://blog.csdn.net/muchong123"}
# 将 JSON 对象转换为 Python 字典
python_dict = json.loads(json_obj)
print ("python_dict['name']: ", python_dict['name'])
print ("python_dict['blog-url']: ", python_dict['blog-url'])
结果:
python_dict['name']: mcchen
python_dict['blog-url']: https://blog.csdn.net/muchong123
Python 列表,元组类型与JSON数组互相转换
#Python 列表 类型转换为 JSON 对象
python_list = ['tengxun', 'baidu', 'alibaba', 'jingdong']
json_array = json.dumps(python_list)
print ("Python 列表原始数据:", repr(python_list))
print ("JSON 数组:", json_array)
结果:
Python 列表原始数据: ['tengxun', 'baidu', 'alibaba', 'jingdong']
JSON 数组: ["tengxun", "baidu", "alibaba", "jingdong"]
#Python 元组 类型转换为 JSON 数组
python_tuple = ('tengxun', 'baidu', 'alibaba', 'jingdong')
json_array = json.dumps(python_tuple)
print ("Python 元组原始数据:", repr(python_tuple))
print ("JSON 数组:", json_array)
结果:
Python 元组原始数据: ('tengxun', 'baidu', 'alibaba', 'jingdong')
JSON 数组: ["tengxun", "baidu", "alibaba", "jingdong"]
#将 JSON 数组 转换为Python 列表
python_dict = json.loads(json_array )
print ("Python列表: ", python_dict)
结果:
Python列表: ['tengxun', 'baidu', 'alibaba', 'jingdong']