標籤:print var 簡單的 類型 逗號 標記法 資訊 替換 sel
一、jsonJSON: JavaScript Object Notation(JavaScript 物件標記法)JSON 是儲存和交換文本資訊的文法1、json輕量級:文法規則JSON 文法是 JavaScript 物件標記法文法的子集。(1)資料在成對的名稱和數值中(2)資料由逗號分隔(3)一個花括弧表示一個對象(4)[]數組,可以存放多個對象(5)字串使用雙引號 二、Python類型與json類型轉換1、把python的資料,轉換為json格式json.dumps(data,sort_keys=True,indent=4,separators=(‘,‘,‘:‘),skipkeys=True,ensure_ascII=False)sort_keys預設是false。是否按字典排序(a到z)輸出:True(按字典排序)indent:每個value對前面空4格顯示separators:使用制定的字元替換,參數的作用是去掉逗號“,”和分號“:”後面的空格skipkeys:把有錯誤的資料忽略掉ensure_ascii:預設是True:字元之外的顯示為\u4e2d\u56fd 2、json解碼:把json格式,轉換成為python格式json.loads()json的object類型-----Python的dict類型json的array類型------Python的list類型 import jsondata = [{‘a‘:‘A‘,‘b‘:(2,4),‘c‘:3.0,‘d‘:None,‘e‘:True}]print datadataJson = json.dumps(data,sort_keys=True,separators=(‘,‘,‘:‘),indent=4,skipkeys=True)print dataJson print json.loads(dataJson) 3、編碼過程中,Python中的list和tuple都被轉化成json的數組,而解碼後,json的數組最終被轉化成Python的list的,無論是原來是list還是tuple。 三、序列化和還原序列化1、把python的類對象轉換為json格式:使用dumps()函數中的default參數import jsonclass Employee(object):def __init__(self,name,age,sex,tel):self.name = nameself.age = ageself.sex = sexself.tel = tel# 將序列化函數定義到類裡面def objJson(self):return {‘name‘:self.name,‘age‘:self.age,‘sex‘:self.sex,‘tel‘:self.tel} e1 = Employee(‘andy‘,‘24‘,‘male‘,‘131xxxxxxxx‘)print json.dumps(e1,default=e1.objJson) #另一個更簡單的方法e1=Employee(‘andy‘,‘24‘,‘male‘,‘131xxxxxxxx‘)# print json.dumps(e1,default=e1.objJson)print json.dumps(e1.__dict__)通常class及其執行個體都會有一個__dict__屬性(除非類中添加了__slots__屬性),它是一個dict類型,儲存的是類或類執行個體中有效屬性。 2、Json還原序列化為類對象json串還原序列化成類對象或類的執行個體,使用的是loads()方法中的object_hook參數來實現。json.loads(data,object_hook=jsonToClass) class Employee(object):def __init__(self,name,age,sex,tel):self.name = nameself.age = ageself.sex = sexself.tel = teldef objJson(self,obj_instance):return {‘name‘:obj_instance.name,‘age‘:obj_instance.age,‘sex‘:obj_instance.sex,‘tel‘:obj_instance.tel} e1 = Employee(‘andy‘,‘24‘,‘male‘,‘131xxxxxxxx‘)print json.dumps(e1.__dict__)#fucn(e1)print e1.__dict__ def jsonToClass(dictVar):return Employee(dictVar[‘name‘],dictVar[‘age‘],dictVar[‘sex‘],dictVar[‘tel‘])jsonDate = {"age": "24", "tel": "131xxxxxxxx", "name": "andy", "sex": "male"}e = json.loads(jsonDate,object_hook=jsonToClass)print eprint e.name 四、Python類型 JSON字串類型dict objectlist, tuple arraystr, unicode stringint, long, float numberTrue trueFalse falseNone null
Python之json編碼