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文件中提取值。

更新于:2023年7月12日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.