JSON(JavaScript Object Notation) 是一种轻量级数据交互格式,python3使用json模块JSON 数据进行编解码,简单的理解就是 对数据对象进行序列化,或者反序列化。
序列化:将python数据对象编码为JSON格式字符串;
反序列化:将JSON格式字符串解码给python数据对象。
json模块中常用的方法:json.dumps、json.loads、json.dump、json.load,其中json.dumps、json.loads用于对数据编解码,json.dump、json.load用于对数据文件的编解码。
Python 编码为 JSON 类型转换对应表:(以下图片来源菜鸟教程)
JSON 解码为 Python 类型转换对应表:(以下图片来源菜鸟教程)
下面看一下具体json.dumps、json.loads实例:
1 import json 2 3 str1 = 'python is good!' 4 list1 = ['c','java','python','php'] 5 tuple1 = ('1','2','3','4') 6 dict1 = {'name':'admin','age':'20','address':'sz'} 7 8 str_json = json.dumps(str1) #对字符串进行序列化 9 print("类型:{0},内容:{1}".format(type(str_json),str_json)) 10 json_str = json.loads(str_json) #反序列化 11 print("类型:{0},内容:{1}".format(type(json_str),json_str)) 12 13 list_json = json.dumps(list1) #对列表进行序列化 14 print("类型:{0},内容:{1}".format(type(list_json),list_json)) 15 json_list = json.loads(list_json) 16 print("类型:{0},内容:{1}".format(type(json_list),json_list)) 17 18 tuple_json = json.dumps(tuple1) #对元祖进行序列化 19 print("类型:{0},内容:{1}".format(type(tuple_json),tuple_json)) 20 json_tuple = json.loads(tuple_json) 21 print("类型:{0},内容:{1}".format(type(json_tuple),json_tuple)) #注意元祖序列化和反序列化后 变成列表 22 23 dict_json = json.dumps(dict1) #对字典进行序列化 24 print("类型:{0},内容:{1}".format(type(dict_json),dict_json)) 25 json_dict = json.loads(dict_json) 26 print("类型:{0},内容:{1}".format(type(json_dict),json_dict))
json.dump、json.load对文件处理实例:
1 import json 2 3 #写数据 4 dict1 = {'name':'admin','age':'20','address':'sz'} 5 with open('data.json', 'w') as f: 6 json.dump(dict1, f) 7 8 # 读取数据 9 with open('data.json', 'r') as f: 10 data = json.load(f) 11 print(data)