json 模塊提供了一種很簡單的方式來編碼和解碼JSON 數據。
字符串操作
其中兩個主要的函數是json.dumps() 和json.loads() ,要比其他序列化函數庫如pickle 的接口少得多。下面演示
1.如何將一個Python 數據結構轉換為JSON
2.如何將一個JSON 編碼的字符串轉換回一個Python 數據結構
import json data={ 'name':'AWQA', 'shares':100, 'price':542.33 } json_str=json.dumps(data) print(json_str) data1=json.loads(json_str) print(data1)
文件操作
dump: 將數據寫入json文件中
load:把文件打開,並把字符串變換為數據類型
import json data={ 'name':'AWQA', 'shares':100, 'price':542.33 } ''' with open(r'C:\Temp\aa.json','w') as f: json.dump(data,f) ''' with open(r'C:\Temp\aa.json','r') as f: loadfile=json.load(f) print(loadfile)
JSON 編碼支持的基本數據類型為None , bool , int , float 和str ,以及包含這些類型數據的lists,tuples 和dictionaries。對於dictionaries,keys 需要是字符串類型(字典中任何非字符串類型的key 在編碼時會先轉換為字符串)。為了遵循JSON規范,應該只編碼Python 的lists 和dictionaries。而且,在web 應用程序中,頂層對象被編碼為一個字典是一個標准做法。
JSON 編碼的格式對於Python 語法而已幾乎是完全一樣的,除了一些小的差異之外。比如,True 會被映射為true,False 被映射為false,而None 會被映射為null。下面是一個例子,演示了編碼后的字符串效果:
>>> json.dumps(False) 'false' >>> d = {'a': True, ... 'b': 'Hello', ... 'c': None} >>> json.dumps(d) '{"b": "Hello", "c": null, "a": true}'