python json數據格式


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]

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM