导航

python的json模块介绍

Posted on 2018-11-02 10:45  wzd321  阅读(273)  评论(0编辑  收藏  举报

转载:https://blog.csdn.net/xsj_blog/article/details/51921664

对于数据传递方面,XML是一种选择,还有一种选择是JSON,它是一种轻量级的数据交换格式.在json的编码过程中,会存在从python原始类型向json类型的转化过程,具体的转化对照如下:

这里写图片描述

 

python标准库中的json模块主要执行序列化和反序列化的功能:

  • 序列化 dumps() :encoding,把一个python队形编码转化成JSON字符串
  • 反序列化 loads() :decoding,把JSON格式字符串解码转换为python数据对象,即为字典对象

注意 :JSON在python中分别由list和dict组成.

dumps()

dumps函数的功能:转换为字符串的格式,序列化

语法格式:

dumps(data, sort_keys = True, indent = 2)

sort_keys = True 是按照键的字典顺序排序.

indent = 2是让每个键/值对显示的时候,以缩进两个字符对齐.

import json
data = [{"name":"xiaoxu","lang":("python","english"),"age":40}]
data_json_1 = json.dumps(data)
print(data_json_1)
# =============================================================================
# 
# [{"name": "xiaoxu", "lang": ["python", "english"], "age": 40}]
# 
# =============================================================================
data_json_2 = json.dumps(data,sort_keys = True,indent =2)
print(data_json_2)
# =============================================================================
# [
#   {
#     "age": 40,
#     "lang": [
#       "python",
#       "english"
#     ],
#     "name": "xiaoxu"
#   }
# ]
# =============================================================================

loads()

loads 函数的功能:转换为字典的格式,反序列化

new_data = json.loads(data_json_2)
print(new_data)
# =============================================================================
# [{'age': 40, 'lang': ['python', 'english'], 'name': 'xiaoxu'}]
# =============================================================================