Python程式從JSON響應中提取單個值
值提取是一個非常流行的程式設計概念,它被廣泛應用於各種操作中。然而,從JSON響應中提取值是一個完全不同的概念。它幫助我們構建邏輯並定位複雜資料集中的特定值。本文將解釋可用於從JSON響應中提取單個值的各種方法。在我們開始值提取之前,讓我們先了解JSON響應的含義。
什麼是JSON響應?
JSON(JavaScript物件表示法)響應是一種被廣泛接受的資料格式,伺服器透過它來響應客戶端請求。每當客戶端向伺服器請求某些API或資訊時,都會生成一個響應,並將API傳遞給客戶端。現在,這些資訊以客戶端和伺服器都能理解的方式共享,為此我們需要一種統一的資料格式。
JSON響應以JSON物件的形式共享資訊,這些物件可以轉換為任何本地程式語言。由於我們使用的是Python,我們的任務是從此響應中檢索單個值,因此我們將這些物件轉換為字典。現在我們對JSON響應有了簡要的瞭解,讓我們瞭解提取部分。
使用API從JSON響應中提取值
在這種方法中,我們將使用API端點從伺服器檢索資料。首先,我們將匯入“requests”庫來處理HTTP請求。然後,我們將使用“get()”方法向API端點發送“GET”請求。在這個例子中,我們將使用“CoinDesk”API端點,它即時獲取比特幣價格指數(BPI)。JSON物件在“json()”方法的幫助下轉換為字典。然後解析這些字典以選擇特定資訊。
在這裡,我們將透過訪問巢狀物件來提取BPI值。字典鍵指的是某些屬性和特性,它們的值指的是不同的資料型別。我們將使用鍵來提取單個值和多個值。有關官方文件,請參考此連結:https://apipheny.io/free-api/
API URL連結:https://api.coindesk.com/v1/bpi/currentprice.json
示例
以下是如何使用“CoinDesk”API從JSON響應中提取單個值的示例:
import requests print("Welcome to the live bitcoin Price index") Json_data = requests.get('https://api.coindesk.com/v1/bpi/currentprice.json').json() Disclaimer = Json_data["disclaimer"] print(Disclaimer) BPI = Json_data["bpi"]["USD"]["rate"] print(f"The real time BPI value for the United states of America is: {BPI}") TIME = Json_data["time"]["updated"] print(f"The index was viewed at Universal time: {TIME}")
輸出
Welcome to the live bitcoin Price index This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org The real time BPI value for the United states of America is: 25,978.6344 The index was viewed at Universal time: Jun 11, 2023 18:26:00 UTC
從本地JSON檔案中提取單個值
此方法側重於從系統上儲存的JSON檔案中提取單個值。我們首先建立一個JSON檔案,然後匯入JSON模組來解碼從“JSON響應”中檢索到的資料。
這種方法類似於檔案處理的概念,我們載入JSON檔案,然後以特定模式開啟它。我們還可以使用不同的檔案模式(如“追加”、“二進位制”、“只讀”等)來更改此檔案並操作其內容。我們將使用一個儲存與貓相關資訊的本地檔案(DSC.json),我們將從名為“fact”的鍵中提取此資訊。
示例
以下是一個示例:
import json try: with open("DSC.json", "r+") as file: Json_file = json.load(file) FACTS = Json_file["fact"] print(f"Here is a fact related to cats: \n{FACTS}") except: print("File does not exist")
輸出
Here is a fact related to cats: Mountain lions are strong jumpers, thanks to muscular hind legs that are longer than their front legs.
其他見解
我們還可以透過將“JSON物件”轉儲到一個元素中,然後在“.loads()”方法的幫助下將其載入到字串中,從而將JSON資料轉換為字串而不是字典。程式設計師使用此值提取概念時最常見的錯誤是使用錯誤的鍵名來訪問值。此外,在處理巢狀物件時,我們必須使用正確的順序進行資料提取。以下是一個示例:
data = Json_data["Parent object"]["Child object"]
這是提取正確值的層次結構。
結論
在本文中,我們介紹了值提取的基礎知識,並瞭解了其重要性。我們還討論了“JSON響應”的機制以及如何從中提取單個值。在第一種方法中,我們使用API端點從伺服器檢索資料。在第二種方法中,我們直接從本地儲存的JSON檔案中提取值。