JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
JSON在python中分别由list和dict组成。
有两个重要的包
- Json模块提供了四个功能:dumps、dump、loads、load
- pickle模块提供了四个功能:dumps、dump、loads、load
json dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load把文件打开从字符串转换成数据类型
json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!josn就不行了。而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。
import json test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]} json_str = json.dumps(test_dict) #dumps 将字典转换成字符串 new_dict = json.loads(json_str) #loads将字符串转换成字典
写入json文件
with open("../config/record.json","w") as f: json.dump(new_dict,f)
读取json文件
#读 with open("../config/record.json",'r') as load_f: load_dict = json.load(load_f) #写 with open("../config/record.json","w") as dump_f: json.dump(load_dict,dump_f)
注意
#设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错 f = open("Settings.json", encoding='utf-8') #写入 with open('data.json', 'w') as json_file: json_file.write(json.dumps(data))