App下載

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

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

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

閱前須知

本篇文章用到的知識點有:

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

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

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

介紹

json作為前后端分離后的唯一聯(lián)系,后端和前端都得具有一定的解析json的能力。而在C/S模式(B/S是瀏覽器與服務器交互,C/S是客戶端與服務器交互)下客戶端要和服務器交互,有些也會采用JSON進行數(shù)據(jù)傳輸(比如今日頭條等)。接下來小編將介紹python如何作為客戶端解析服務器返回的json。

JSON的獲取

首先要介紹一下?requests?庫,他可以模擬瀏覽器向服務器發(fā)起請求??梢允褂?requests?的?get() ?方法對目標url發(fā)起請求。

import requests
response = requests.get('http://www.kuaidi100.com/query?type=ems&postid=1111111111111')
# 使用request請求一個json,這里的快遞單號是小編隨便編寫的

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

response = response.text

JSON的解析

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

response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個字符串進行編碼,
print(response)
print(type(response))
# 打印結果,發(fā)現(xiàn)是字典(JSON對應JavaScript的對象,對應python的字典,對應java的map)
response = json.dumps(response)
# 使用JSON的的dumps方法,可以把字典轉化為字符串(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方法取出響應的文本
print(response)
print(type(response))
# 打印后發(fā)現(xiàn)是個字符串(JSON在傳輸?shù)臅r候是以字符串進行傳輸?shù)模?response = json.loads(response)
# 使用JSON模塊的loads方法,可以將這個字符串進行編碼,
print(response)
print(type(response))
# 打印結果,發(fā)現(xiàn)是字典(JSON對應JavaScript的對象,對應python的字典,對應java的map)
response = json.dumps(response)
# 使用JSON的的dumps方法,可以把字典轉化為字符串(JSON的傳輸是以字符串傳輸?shù)?,?print(response)
print(type(response))

小結

以上就是python怎么解析json的全部內容,更多python學習可以前往python編程獅。


0 人點贊