值提取是一个非常流行的编程概念,它用于各种操作。但是,从 JSON 响应中提取值是一个完全不同的概念。它帮助我们构建逻辑并在复杂数据集中定位特定值。本文将介绍可用于从 JSON 响应中提取单个值的各种方法。在开始值提取之前,让我们重点了解 JSON 响应的含义。
什么是 JSON 响应?
JSON(JavaScript 对象表示法)响应是一种被广泛接受的数据格式,服务器通过它响应客户端的请求。每当客户端从服务器请求某些 API 或信息时,都会生成响应并将 API 传递给客户端。现在,这些信息的共享方式使客户端和服务器都可以理解数据,为此我们需要统一的数据格式。
JSON 响应以 JSON 对象的形式共享信息,这些对象可以转换为任何本地编程语言。由于我们使用的是python,我们的任务是从这个响应中检索单个值,我们将这些对象转换为字典。现在我们已经简要了解了 JSON 响应,让我们了解提取部分。
使用 API 从 JSON 响应中提取值
在这种方法中,我们将使用 API 端点从服务器检索数据。首先,我们将导入“请求”库来处理 HTTP 请求。然后,我们将使用 “get()” 方法向 API 端点发送 “GET” 请求。在此示例中,我们将使用“CoinDesk”API端点实时获取比特币价格指数(BPI)。JSON 对象在“json()”方法的帮助下转换为字典。然后解析这些词典以选择特定信息。
在这里,我们将通过访问嵌套对象来提取 BPI 值。字典键引用某些属性和属性,其值引用不同的数据类型。我们将使用键来提取单个和多个值。有关官方文档,请参阅此链接 − https://apipheny.io/free-api/
API 网址链接 −https://api.coindesk.com/v1/bpi/currentprice.json
例
下面是一个使用“CoinDesk”API从JSON响应中提取单个值的示例 -
代码语言:javascript复制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}")
输出
代码语言:javascript复制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”的键中提取此信息。
例
下面是一个示例 -
代码语言:javascript复制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")
输出
代码语言:javascript复制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 数据转换为字符串而不是字典。程序员在使用这种值提取概念时最常犯的错误是他们使用错误的键名来访问值。此外,在处理嵌套对象时,我们必须使用正确的顺序进行数据提取。下面是一个例子——
代码语言:javascript复制data = Json_data["Parent object"]["Child object"]
这是提取正确值所遵循的层次结构。
结论
在本文的过程中,我们介绍了价值提取的基础知识,并了解了其重要性。我们还讨论了“JSON 响应”的机制以及如何从中提取单个值。在这 1圣方法,我们使用 API 端点从服务器检索数据。在 2德·方法,我们直接从本地存储的 JSON 文件中提取值。