App下載

python json實(shí)戰(zhàn)—如何解析json

猿友 2021-06-19 14:39:52 瀏覽數(shù) (3672)
反饋

隨著前后端分離逐漸成為web項(xiàng)目的主流,JSON的使用在各種語言中都能找到使用的方法。那么對于python而言,python怎么解析json呢?其實(shí)在W3C的編程手冊里面介紹得很明白了。本篇文章的目的,就是設(shè)計(jì)一個(gè)樣例,來深化學(xué)習(xí)python的json操作。

閱前須知

本篇文章用到的知識(shí)點(diǎn)有:

JSON數(shù)據(jù)解析方法:python3json數(shù)據(jù)解析;

request庫的部分方法(本篇單獨(dú)講解,request庫的安裝可以參考這篇文章:python怎么安裝requests?如何使用pip安裝requests庫);

api的使用(參考這篇文章:免費(fèi)api介紹,趕緊收藏!);

介紹

json作為前后端分離后的唯一聯(lián)系,后端和前端都得具有一定的解析json的能力。而在C/S模式(B/S是瀏覽器與服務(wù)器交互,C/S是客戶端與服務(wù)器交互)下客戶端要和服務(wù)器交互,有些也會(huì)采用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請求一個(gè)json,這里的快遞單號(hào)是小編隨便編寫的

獲得響應(yīng)后,通過?requests?的?text()?方法可以取到響應(yīng)的內(nèi)容(這里是一串字符串)。

response = response.text

JSON的解析

接下來的內(nèi)容就是手冊中提到的JSON解析方法了,主要是?json?庫的兩個(gè)方法?loads()?和?dumps()?。

response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個(gè)字符串進(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請求一個(gè)json,這里的快遞單號(hào)是小編隨便編寫的
print(response)
print(type(response))
# 打印后發(fā)現(xiàn)這是一個(gè)對象
response = response.text
# 使用requests的的text方法取出響應(yīng)的文本
print(response)
print(type(response))
# 打印后發(fā)現(xiàn)是個(gè)字符串(JSON在傳輸?shù)臅r(shí)候是以字符串進(jìn)行傳輸?shù)模?response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個(gè)字符串進(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編程獅。


0 人點(diǎn)贊