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))