JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,通常是以键值对的方式呈现,其简洁和清晰的层次结构使得JSON成为理想的数据交换语言,而在Python中处理JSON格式的模块有json和pickle两个。
json模块和pickle都提供了四个方法:dumps, dump, loads, load 序列化:将python的数据转换为json格式的字符串 反序列化:将json格式的字符串转换成python的数据类型
dumps与loads主要是针对于json数据的处理,更加关注于数据类型本身。
json_data = {'test': {'test1_1': 1}, 'test2': {'test2_2': {'test2_3': 2}}, 'test3': {'test3_2': {'test3_3': {'test3_4': 3}}}} content = json.dumps(json_data) print(content) print(type(content)) content = json.loads(content) print(content) print(type(content))
{"test": {"test1_1": 1}, "test2": {"test2_2": {"test2_3": 2}}, "test3": {"test3_2": {"test3_3": {"test3_4": 3}}}} <class 'str'> {'test': {'test1_1': 1}, 'test2': {'test2_2': {'test2_3': 2}}, 'test3': {'test3_2': {'test3_3': {'test3_4': 3}}}} <class 'dict'>
dump与load主要是针对于json文件的处理。
{ "test":{ "test1_1":1 }, "test2":{ "test2_2":{ "test2_3":2 } }, "test3":{ "test3_2":{ "test3_3":{ "test3_4":3 } } } }
读取json数据并写入新的json数据
import json, os JSON_PATH = os.path.join(os.path.dirname(__file__), 'test.json') JSON_PATH2 = os.path.join(os.path.dirname(__file__), 'test2.json') with open(JSON_PATH, mode='r', encoding='utf8') as r_f: content = json.load(r_f) print(content) print(type(content)) with open(JSON_PATH2, mode='w', encoding='utf-8') as w_f: json.dump(content, w_f, indent=True)
{'test': {'test1_1': 1}, 'test2': {'test2_2': {'test2_3': 2}}, 'test3': {'test3_2': {'test3_3': {'test3_4': 3}}}} <class 'dict'>
json.dumps、json.dump是将python数据类型转换为json数据的字符串类型。
json.loads、json.load是将json数据的字符串类型转换为python数据类型,一般为字典
json.dumps与json.loads主要是针对于json数据的处理,更加关注于数据类型本身。
json.dump与json.load主要是针对于json文件的处理。