python json資料格式
阿新 • • 發佈:2018-12-26
Python json模組
JSON(JavaScript Object Notation)是javascript物件表示法,它是一種基於文字,輕量級資料交換格式,
JSON有兩種表示結構,一種是物件結構,一種是陣列結構。
物件結構以{鍵:值}的形式表示,類似於字典的形式。
例如: { 1:{ "city_id":01, "city_name":"北京", "area":["城東區","城南區"] }, 2:{ "city_id":2, "city_name":"上海", "area":["浦東區","朝陽區"] } } 陣列結構以[元素1,元素2,元素3]的形式表示。 例如: [ { "red":1, "blue":2, "green":3 }, { "apple":8, "banana":6 } ]
在Python中,提供json庫來建立和解析json資料
json函式:
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)
json.loads() 將已編碼的json字串解碼為Python物件
語法格式:
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
Python與json轉化對照表:
Python json dict object list、tuple array str、unicode string int、long、float number True true False false None null
以下是Python建立json資料的例項
import json dist_1=[["a",1],["b",{"q":2,"w":6,"e":4,"r":3}]] json_1=json.dumps(dist_1) print json_1 執行結果: [["a", 1], ["b", {"q": 2, "r": 3, "e": 4, "w": 6}]] [Finished in 0.3s] [格式化資料] #-*-encoding:utf-8-*- import json dist_city={ 1:{ "city_id":01, "city_name":"北京", "area":["城東區","城南區"] }, 2:{ "city_id":2, "city_name":"上海", "area":["浦東區","朝陽區"] } } print dist_city #格式化輸出json資料 json_city=json.dumps(dist_city,sort_keys=True,indent=4) print json_city 執行結果: {1: {'city_id': 1, 'city_name': '\xe5\x8c\x97\xe4\xba\xac', 'area': ['\xe5\x9f\x8e\xe4\xb8\x9c\xe5\x8c\xba', '\xe5\x9f\x8e\xe5\x8d\x97\xe5\x8c\xba']}, 2: {'city_id': 2, 'city_name': '\xe4\xb8\x8a\xe6\xb5\xb7', 'area': ['\xe6\xb5\xa6\xe4\xb8\x9c\xe5\x8c\xba', '\xe6\x9c\x9d\xe9\x98\xb3\xe5\x8c\xba']}} { #格式化後的json資料 "1": { "area": [ "\u57ce\u4e1c\u533a", "\u57ce\u5357\u533a" ], "city_id": 1, "city_name": "\u5317\u4eac" }, "2": { "area": [ "\u6d66\u4e1c\u533a", "\u671d\u9633\u533a" ], "city_id": 2, "city_name": "\u4e0a\u6d77" } } [Finished in 0.3s] [壓縮] dist_1=[["a",1],["b",{"q":2,"w":6,"e":4,"r":3}]] json_1=json.dumps(dist_1) print "壓縮前資料:%d" %(len(json_1)) #壓縮 json_2=json.dumps(dist_1,separators=(",",":")) print "壓縮後資料:%d" %(len(json_2)) 執行結果: 壓縮前資料:51 壓縮後資料:41 [Finished in 0.2s] loads函式 #-*-encoding:utf-8-*- import json dist_1=[["a",1],["b",{"q":2,"w":6,"e":4,"r":3}]] json_1=json.dumps(dist_1,indent=4,sort_keys=True,separators=(",",":")) print json_1 json_2=json.loads(json_1) #將json格式轉換為Python關係的格式 print json_2 執行結果: [ [ "a", 1 ], [ "b", { "e":4, "q":2, "r":3, "w":6 } ] ] [[u'a', 1], [u'b', {u'q': 2, u'r': 3, u'e': 4, u'w': 6}]] [Finished in 0.2s]