用 Python 解析 JSON - 3 个简单步骤

指南, 如何, 蟒蛇, Mar-06-20245 分钟阅读

使用 Python 对 JSON 数据进行解析,能以其轻量级的质量简化数据转换。国际数据公司预测,到 2022 年,大数据和商业行业将比 2018 年增长 62%。由于数据共享在数字世界中相当普遍,人们打算将大量数据从他们的主服务器发送到

使用 Python 对 JSON 数据进行解析,能以其轻量级的质量简化数据转换。国际数据公司预测,到 2022 年,大数据和商业行业将比 2018 年增长 62%。由于数据共享在数字世界中相当普遍,人们打算将大量数据从主服务器发送到客户端应用程序,或从一台服务器发送到其他数据库。人们在很大程度上依赖 JSON 等数据交换文件格式将数据传输到另一端的设备,后者会将数据转换为用户可读的格式。在本文中,我们将探讨什么是 JSON、如何在 Python 中解析 JSON 以及为什么?

目录

为什么用 Python 解析 JSON?

由于JSON是一种轻量级格式,这在时间和速度上简化了转换过程。这就是为什么数据从业人员更喜欢以 JSON 格式收发信息。但是,当转换后的数据需要进一步操作时,用户必须将其转换为机器可理解的语言。这就是人们用 Python 解析 JSON 的原因。在这里,我们使用的是 Python 语言。因此,我们必须使用 Python 库和函数来读取和解析 JSON 数据。

要了解数据解析的重要性,请参阅本文《数据解析及其益处》。

什么是 JSON?

Javascript Object Notation(JSON)是一种轻量级数据格式,它以用户可读的格式将信息从服务器传输到网络应用程序。虽然 JSON 格式是 JavaScript 的衍生格式,但它使用文本格式来表示对象。机器可以用 Python 解析 JSON,将 JSON 数据转换为机器可读的格式。

JSON 数据示例

{
   "person": [
 
      {
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      },
 
      {
         “name": “Nitin",
         "age": "24",
         "languages": ["Java", “Python”]
      }
   ]
}

下面是 JSON 字符串示例。大括号内的内容是一个对象,方括号内的数据是一个数组。 

如何用 Python 解析 JSON

The JSON string {“name”: “John”, “age”: “26”, “languages”: [“C”, “Python”]} is similar to the dictionaries in Python. Just like dictionaries, JSON also has keys and values. Here the keys and value pairs are separated with a colon. The ‘name,’ ‘age,’ and ‘languages’ are the keys, and the data after the colon are the values of the respective keys. JSON can be accessed in Python using the JSON library that holds all the functions to convert the JSON strings into Python dictionaries and vice versa. 

通过在 Python 代码中导入 JSON 库,Python 可以访问 JSON 数据。Python 中的 JSON 模块允许用户对 JSON 数据进行读、写、解析和其他操作。

 导入 json

将 JSON 数据解析为 Python 对象

JSON 数据有多种类型,如字符串、数组、对象、数字、文件等。 

Python 解析 JSON - 等价 Python 对象

接收 JSON 数据后,主要任务是将 JSON 数据转换为 Python 数据类型。本表显示了 JSON 数据类型及其对应的 Python 格式。

JSON 数据类型Python 数据类型
反对口述
矩阵列表、元组
字符串字符串
编号int, float
正确
错误假的

Steps to Parse different JSON Data into Python

在这里,我们将学习如何将某些 JSON 数据解析为等效的 Python 格式。 

JSON 字符串转换为 Python 字典JON 数组转换为 Python 列表JON 文件转换为 Python 对象。 

用 Python 解析 JSON - 将字符串转换为字典

请看一个 JSON 字符串示例。

{
  "name": "John", 
  "age": "26"
 }

将字符串赋值到变量中可以通过将变量传递到函数中来简化解析操作。 示例:print(person)

person ='{"name": "John", "age": "26"}'

print(person) 语句将打印字符串。 

person ='{"name": "John", "age": "26"}'
print(person)

输出 

{“name”: “John”, “age”: “26”}

将变量传入 type() 函数将确保数据是字符串。

person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))

输出 

{“name”: “John”, “age”: “26”}

<class ‘str’>

将字符串转换为字典

第一步是将字符串形式的 JSON 数据解析为 Python 友好的形式。如前所述,JSON 字符串和 Python 字典非常相似,都是键值对结构。要在 Python 中读取和解析 JSON 数据,首先要导入 JSON 库。loads() 函数用于将 JSON 字符串解析为 Python 字典。loads() 函数中的 "s "表示字符串。

导入 json
json.loads(STRNAME)

让我们来看看在上述示例中打印的 JSON 字符串示例。 

person ='{"name": "John", "age": "26"}'
 print(person)

使用 json.loads() 函数将字符串转换为 python 字典。json.loads() 中的 "json "表示库名。 

json.loads(person)

还需要将 load() 语句赋值给一个新变量。在这里,我们使用了 "person_dxnry "变量。 

person_dxnry= json.loads(person)pyt

将字符串转换为字典并赋值给新变量后,我们可以使用 type() 函数查看转换前后的数据类型。

print(type(person))
print(type(person_dxnry))
import json
 person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))
 person_dxnry = json.loads(person)
 print(person_dxnry)
 print(type(person_dxnry))

输出:

{“name”: “John”, “age”: “26”}

<class ‘str’>

{‘name’: ‘John’, ‘age’: ’26’}

<class ‘dict’>

在这里,type() 函数显示类型在初始情况下是字符串,转换后成为字典。 

用 Python 解析 JSON - 将数组转换为列表

让我们尝试将另一种 JSON 数据类型转换为 Python 结构,使用这个具有数组的 JSON 示例代码。

{
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      }

我们可以将数组赋值给 "languages "变量,将其传递给 loads() 函数。然后,我们可以创建一个新变量 "language_list",将 loads() 函数的结果赋值给它。

languages='["C", "Python"]'
languages_list= json.loads(languages)
导入jsonpyt
 languages = '["C", "Python"]'
 languages_list = json.loads(languages)
 print(languages_list)
 print(type(languages_list))

对这两个变量使用 type() 函数可以帮助我们验证数据类型。

输出

['C'、'Python']

<class ‘list’>

输出显示,"languages "中的 JSON 数组已被 loads() 函数转换为列表。

用 Python 解析 JSON - 将文件转换为对象

最常见的 JSON 格式是字符串。也很有可能以文件形式接收 JSON 格式的数据。无论数据类型是什么,最终目的都是将它们解析成 python 可读的格式。您可以使用 load() 和 loads() 这两个函数进行解析。这些 JSON 解析函数因 JSON 数据类型而异。我们将在接下来的章节中简要讨论这些函数。

Python 内置的 JSON 库提供了另一个转换函数 "load()",用于在 Python 中读取和解析 JSON 文件。 

如何读取和解析 JSON 文件?

Python 解析 JSON - 三种方法。

第一步是以 "person.json "为名保存示例代码

{
         "name": "John",
         "age": "26",
      }

有两个函数可以解析 JSON 文件。一个是 open() 函数。open() 方法有助于打开 JSON 文件,并指示编译器使用 load() 操作完成转换过程。 

with open('person.json')as file:pyt

打开 JSON 文件后,我们必须创建一个变量 "data "来分配加载操作。

data= json.load(file)

最后,我们可以使用 type() 函数来检查内容的类型。

print(type(data))

我们可以使用 "data "变量访问转换后字典中的元素,并传递字典的键,如 "姓名 "和 "年龄"。

print(data['age'])
print(data['name'])
导入json
withopen('person.json')asfile:
data= json.load(file)
print(type(data))
print(data['age'])
print(data['name'])

输出:

<class ‘dict’>

26

约翰

输出结果显示类型为 "字典"。这意味着我们已成功将 JSON 文件转换为列表。

将 Python 写入 JSON

我们还可以使用 dumps() 和 dump() 函数将 Python 数据形式转换为 JSON。它们是 load() 和 loads() 函数的反向过程。让我们使用 dump() 函数将 Python 字典转换为 JSON 字符串。 

 我们将 Python 字典定义为 "person_dictionary"。 

person_dictionary = {'name': 'John', 'age': 26 }

使用 dumps() 函数执行转换操作,并将其赋值给新变量 "person_json"。

person_json=json.dumps(person_dictionary)
print(person_json)
import json
person_dictionary = {'name': 'John',
 'age': 26
 }
 person_json = json.dumps(person_dictionary)
 print(person_dictionary)
 print(type(person_dictionary))
 print(person_json)
 print(type(person_json))

输出:

{‘name’: ‘John’, ‘age’: 26}

<class ‘dict’>

{“name”: “John”, “age”: 26}

<class ‘str’>

对变量 "person_dictioanry "和 "person_json "使用 type() 函数,可确保将 Python 格式转换为 JSON 字符串。

代理如何提供帮助?

JSON 解析在数据转换应用(如搜刮、分析、数据迁移和数据集成过程)中受到广泛青睐。这些带有代理的解决方案将帮助你更好地体验使用 python 进行无限制的数据搜刮和转换。阅读本博客,了解如何在python 请求中添加代理ProxyscrapePython 提供各种类型的代理,帮助完成解析过程。

也可阅读

了解学校代理

如何配置 cURL 代理

代理链

常见问题:

1.为什么用 Python 解析 JSON?
其他一些语言也可以进行 JSON 解析,其中 Python 解析比较流行,因为它提供了一个内置 JSON 包,可以轻松处理 JSON 数据的读取、转换和写入。这种解析在网络抓取、新闻抓取、数据整理、数据挖掘、搜索引擎抓取和市场营销等需要进行数据转换的应用中非常有用。
2.请说出几种支持 JSON 的语言?
JSON 格式支持 C++、Java、PHP、C# 和 Python。
3.什么是 JSON 对象?
JSON 对象是大括号内名称和值对的集合。每个名称/值对之间用逗号分隔,而名称后面则是冒号。

摘要

JSON 已成为网站工作中必不可少的东西。每当需要进行数据传输或数据共享时,人们通常会使用 JSON 格式,因为这种格式轻便且易于互换。JSON 格式更像文本形式,因此用户可以轻松理解内容。机器也可以将内容读取并解析为机器友好的格式。在这里,我们讨论了 Python 中的一些转换功能,如 open()、load()、loads()、dump() 和 dumps()。JSON 模块的这些内置函数可以将数据从 JSON 格式读取并解析为 Python 数据类型,反之亦然。