json編程
若是咱們要在不一樣的編程語言之間傳遞對象,就必須把對象序列化爲標準格式,好比XML,但更好的方法是序列化爲JSON,由於JSON表示出來就是一個字符串,能夠被全部語言讀取,也能夠方便地存儲到磁盤或者經過網絡傳輸。JSON不只是標準格式,而且比XML更快,並且能夠直接在Web頁面中讀取,很是方便。json
JSON表示的對象就是標準的JavaScript語言的對象,JSON和Python內置的數據類型對應以下:網絡
import json dic={'name':'alvin','age':23,'sex':'male'} print(type(dic))#<class 'dict'> j=json.dumps(dic) print(type(j))#<class 'str'> f=open('序列化對象','w') f.write(j) #-------------------等價於json.dump(dic,f) f.close() #-----------------------------反序列化<br> import json f=open('序列化對象') data=json.loads(f.read())# 等價於data=json.load(f)
import json #dct="{'1':111}"#json 不認單引號 #dct=str({"1":111})#報錯,由於生成的數據仍是單引號:{'one': 1} dct='{"1":"111"}' print(json.loads(dct)) #conclusion: # 不管數據是怎樣建立的,只要知足json格式,就能夠json.loads出來,不必定非要dumps的數據才能loads 注意點
dic={ 'name':'alex', 'age':9000, 'height':'150cm', } with open('a.txt','w') as f: f.write(str(dic)) # with open('a.txt','r') as f: # res=eval(f.read()) # print(res['name'],type(res)) # x="[null,true,false,1]" # x="[None,True,1]" # res=eval(x) # # print(res[0],type(res)) # import json # res=json.loads(x) # print(res) import json #序列化的過程:dic---->res=json.dumps(dic)---->f.write(res) dic={ 'name':'alex', 'age':9000, 'height':'150cm', } res=json.dumps(dic) print(res,type(res)) with open('a.json','w') as f: f.write(res) import json #反序列化的過程:res=f.read()---->res=json.loads(res)---->dic=res with open('a.json','r') as f: dic=json.loads(f.read()) print(dic,type(dic)) print(dic['name']) #json的便捷操做 import json dic={ 'name':'alex', 'age':9000, 'height':'150cm', } json.dump(dic,open('b.json','w'))