Python 从JSON响应中提取单个值的程序

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模块以解码从“JASON响应”中获取的数据。

这种方法类似于文件处理概念,我们加载一个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()”方法将其加载到字符串中,而不是字典。在使用此值提取概念时,程序员最常犯的错误是使用错误的“键名”来访问值。此外,在处理嵌套对象时,我们必须使用正确的顺序进行数据提取。以下是一个示例 –

data = Json_data["Parent object"]["Child object"]

这是遵循的层次结构来提取正确的值。

结论

在本文中,我们介绍了值提取的基础知识,并理解其重要性。我们还讨论了“ JSON响应 ”的机制以及如何从中提取单个值。在第一种方法中,我们使用API端点从服务器检索数据。在第二种方法中,我们直接从本地存储的JSON文件中提取值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程