python json包_python编程 之 json包
1,json是什么?
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于人閱讀和編寫。
我的理解就是:json是一種統一的格式化的文件,比如,一個json里放著n行,每行是一個字典,字典里存放著字段。
2,json.dumps
作用:用于將 Python 對象編碼成 JSON 字符串。
語法:json.dumps(obj,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,
encoding="utf-8",default=None,sort_keys=False,**kw)? ? #括號中是其內部自定義的參數和參數的默認值
基本用法:
importjson
data=[{'a':1,'b':2,'c':3}]
json=json.dumps(data) #encode the dataprintjson,type(json)#結果是[{"a": 1, "c": 3, "b": 2}] #很神奇,結果是字符串格式的
帶參數用法:
importjson
data=[{'a':1,'b':2,'c':3,'d':4}]
jsondata=json.dumps(data,sort_keys=True,indent=5,separators=(',',':'))print jsondata,type(jsondata)
sort_keys:編碼成json的時候,是否按照鍵來排序。
indent:輸出的時候每行數據縮進5個空格
separators:指定鍵值對的分隔符是逗號,鍵和值的分隔符是冒號
Skipkeys:默認值是False,如果dict的keys內的數據不是python的基本類型(str,unicode,int,long,float,bool,None),設置為False時,就會報TypeError的錯誤。此時設置成True,則會跳過這類key
ensure_ascii:默認值True,如果dict內含有non-ASCII的字符,則會類似\uXXXX的顯示數據,設置成False后,就能正常顯示
encoding:默認是UTF-8,設置json數據的編碼方式。
sort_keys:將數據根據keys的值進行排序。
python轉json數據類型:
3 json.loads
作用:json.loads 用于解碼 JSON 數據。該函數返回 Python 字段的數據類型。
語法:json.loads(s[,encoding[,cls[,object_hook[,parse_float[,parse_int[,parse_constant[,object_pairs_hook[,**kw]]]]]]]])
簡單實例:(接上文實驗)
#jsondata等于[{"a":1,"b":2,"c":3,"d":4,"e":"5"}],是用dumps轉化而來
pythondata=json.loads(jsondata)printpythondata,type(pythondata)#結果是:[{u'a': 1, u'c': 3, u'b': 2, u'e': u'5', u'd': 4}]
json轉python數據類型:
4,實例
json.dumps()函數是將一個Python數據類變成json格式的編碼
json.loads()函數是將json格式數據轉換為想要的python格式
importjsondefstore(data):
with open('data.json', 'w') as fw:#將字典轉化為字符串
json_str = json.dumps(data) #python變成json
fw.write(json_str) #寫到文件中
#上面兩句等同于下面這句
#json.dump(data,fw) #區分dump和dumps
defload():
with open('data.json','r') as f: #文件源
data = json.load(f) #json變成python
returndataif __name__ == "__main__":
json_data= '{"login":[{"username":"aa","password":"001"},{"username":"bb","password":"002"}],"register":[{"username":"cc","password":"003"},{"username":"dd","password":"004"}]}'
#函數是將json格式數據轉換為字典
data =json.loads(json_data)
store(data)#調用第一個函數,把python編程變成json
data= load() #調用第二函數:把剛剛成了的json的再變回python
print(data)
總結
以上是生活随笔為你收集整理的python json包_python编程 之 json包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼠标右键转圈圈_鼠标右键文件夹出现转圈圈
- 下一篇: c++读二进制文件结束的时候总会异常_p