12 python --json

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)
View Code
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

 注意點
View Code
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'))
View Code
相關文章
相關標籤/搜索