隨著前后端分離逐漸成為web項目的主流,JSON的使用在各種語言中都能找到使用的方法。那么對于python而言,python怎么解析json呢?其實在W3C的編程手冊里面介紹得很明白了。本篇文章的目的,就是設(shè)計一個樣例,來深化學(xué)習(xí)python的json操作。
閱前須知
本篇文章用到的知識點有:
JSON數(shù)據(jù)解析方法:python3json數(shù)據(jù)解析;
request庫的部分方法(本篇單獨講解,request庫的安裝可以參考這篇文章:python怎么安裝requests?如何使用pip安裝requests庫);
api的使用(參考這篇文章:免費api介紹,趕緊收藏!);
介紹
json作為前后端分離后的唯一聯(lián)系,后端和前端都得具有一定的解析json的能力。而在C/S模式(B/S是瀏覽器與服務(wù)器交互,C/S是客戶端與服務(wù)器交互)下客戶端要和服務(wù)器交互,有些也會采用JSON進(jìn)行數(shù)據(jù)傳輸(比如今日頭條等)。接下來小編將介紹python如何作為客戶端解析服務(wù)器返回的json。
JSON的獲取
首先要介紹一下?requests
?庫,他可以模擬瀏覽器向服務(wù)器發(fā)起請求??梢允褂?requests
?的?get()
?方法對目標(biāo)url發(fā)起請求。
import requests
response = requests.get('http://www.kuaidi100.com/query?type=ems&postid=1111111111111')
# 使用request請求一個json,這里的快遞單號是小編隨便編寫的
獲得響應(yīng)后,通過?requests
?的?text()
?方法可以取到響應(yīng)的內(nèi)容(這里是一串字符串)。
response = response.text
JSON的解析
接下來的內(nèi)容就是手冊中提到的JSON解析方法了,主要是?json
?庫的兩個方法?loads()
?和?dumps()
?。
response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個字符串進(jìn)行編碼,
print(response)
print(type(response))
# 打印結(jié)果,發(fā)現(xiàn)是字典(JSON對應(yīng)JavaScript的對象,對應(yīng)python的字典,對應(yīng)java的map)
response = json.dumps(response)
# 使用JSON的的dumps方法,可以把字典轉(zhuǎn)化為字符串(JSON的傳輸是以字符串傳輸?shù)?,?br>print(response)
print(type(response))
完整代碼
import requests
import json
response = requests.get('http://www.kuaidi100.com/query?type=ems&postid=111111111111')
# 使用request請求一個json,這里的快遞單號是小編隨便編寫的
print(response)
print(type(response))
# 打印后發(fā)現(xiàn)這是一個對象
response = response.text
# 使用requests的的text方法取出響應(yīng)的文本
print(response)
print(type(response))
# 打印后發(fā)現(xiàn)是個字符串(JSON在傳輸?shù)臅r候是以字符串進(jìn)行傳輸?shù)模?response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個字符串進(jìn)行編碼,
print(response)
print(type(response))
# 打印結(jié)果,發(fā)現(xiàn)是字典(JSON對應(yīng)JavaScript的對象,對應(yīng)python的字典,對應(yīng)java的map)
response = json.dumps(response)
# 使用JSON的的dumps方法,可以把字典轉(zhuǎn)化為字符串(JSON的傳輸是以字符串傳輸?shù)模?print(response)
print(type(response))
小結(jié)
以上就是python怎么解析json的全部內(nèi)容,更多python學(xué)習(xí)可以前往python編程獅。