JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它是基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文字格式,但也使用了類似C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的資料交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。
JSON在python中分別由list和dict組成。
這是用於序列化的兩個模組:
json: 用於字串和python資料類型間進行轉換
pickle: 用於python特有的類型和python的資料型別間進行轉換
Json模組提供了四個功能:dumps、dump、loads、load
pickle模組提供了四個功能:dumps、dump、loads、load
json dumps把資料型別轉換成字串dump把資料型別轉換成字串並儲存在檔案中 loads把字串轉換成資料型別 load把檔案開啟從字串轉換成資料型別
json是可以在不同語言之間交換資料的,而pickle只在python之間使用。 json只能序列化最基本的資料類型,josn只能把常用的資料類型序列化(列表、字典、列表、字串、數字、),例如日期格式、類別物件! josn就不行了。而pickle可以序列化所有的資料型別,包括類,函數都可以序列化。
事例:
dumps:將python中的字典轉換為字串
import json test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]} print(test_dict) print(type(test_dict)) #dumps 将数据转换成字符串 json_str = json.dumps(test_dict) print(json_str) print(type(json_str))
#loads: 將字串轉換為字典
new_dict = json.loads(json_str) print(new_dict) print(type(new_dict))
dump: 將資料寫入json檔案中
with open("../config/record.json","w") as f: json.dump(new_dict,f) print("加载入文件完成...")
load:把文件打開,並把字串變換為資料型別
with open("../config/record.json",'r') as load_f: load_dict = json.load(load_f) print(load_dict) load_dict['smallberg'] = [8200,{1:[['Python',81],['shirt',300]]}] print(load_dict) with open("../config/record.json","w") as dump_f: json.dump(load_dict,dump_f)
以上是python讀寫json檔說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!