Python JSON处理教程(如何使用JSON())

在本Python JSON处理教程中,你将学习各种 JSON 处理技术,例如加载 JSON 对象、编写、排序 JSON 或解析 JSON 等。
JSON代表代表结构化数据的JavaScript对象表示法(JavaScript Object Notation)。JSON 数据用于交换信息。
Python如何使用JSON?在 Python 中,我们可以通过导入名为 json 的 Python 内置模块来使用 JSON。json 模块对 JSON 数据进行编码和解码。
Python JSON处理指南目录

  • Python如何处理JSON?为什么要使用 JSON?
  • 读取 JSON 文件
  • 获取 JSON 值
  • 更新和删除 JSON 对象
  • JSON 排序
  • 创建 JSON 对象
  • 将 JSON 写入文件
  • 解析 JSON
  • 对象转 JSON
  • JSON 到对象
  • 字节转 JSON
  • 将 HTML 转换为 JSON
  • JSON 到 SQL
  • JSON 加载() VS 加载()
  • JSON 转储()VS 加载()
为什么要使用 JSON?JSON 包含可以被人类和机器读取的数据。在 Python 中使用 JSON 的主要目的是存储和检索列表、元组和字典。
大多数 API 使用 JSON 格式来传递信息。同样,如果你有大量数据,你可以将数据编码为 JSON 格式并将其存储在数据库中。
加载这个包的语法如下:
句法:
import json

读取 JSON 文件要从 JSON 文件中读取数据,我们可以使用 load() 或 loading() 方法。
在 Python 中读取 JSON 数据意味着将 JSON 对象转换为 Python 对象。JSON 对象到 Python 对象的转换称为反序列化。例如,JSON 数组相当于 Python 中的列表。
load() 的语法如下:
句法:
data = https://www.lsbin.com/json.load(object)

  • 'object' 是执行语句后将加载的 JSON 对象,并将作为 Python 对象存储在变量 'data' 中。
考虑以下 JSON 对象:
代码:
{ "date": "2021-07-17", "firstname": "Hamza", "lastname": "Sher", "city": "Kyoto", "array": [ "Carmela", "Ashlee", "Alisha" ], "array of objects": [ { "index": 0, "index start at 5": 5 }, { "index": 1, "index start at 5": 6 }, { "index": 2, "index start at 5": 7 } ] }

以下代码打印 JSON 对象中键“array”的值:
代码:
import jsonjsonFile = open('jsonData.json')data = https://www.lsbin.com/json.load(jsonFile)print(data)jsonFile.close()

输出:
Python JSON处理教程(如何使用JSON())

文章图片
如果我们有一个存储 JSON 对象的字符串,我们可以使用 load() 方法来读取该字符串。
句法:
data = https://www.lsbin.com/json.loads(jsonString)

以下代码打印 JSON 字符串:
代码:
import jsonjsonData = 'https://www.lsbin.com/{"Name": "Hamza", "ID":"12345"}'data = https://www.lsbin.com/json.loads(jsonData)print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
获取 JSON 值Python如何处理JSON?JSON 对象以键值对的形式构建,这使得从对象中获取特定值变得非常简单。我们可以使用字典索引来访问与键关联的值。
句法:
data[ 'firstname']

下面的代码演示了我们如何使用它来获得我们想要的结果。
代码:
import jsonjsonFile = open('jsonData.json')data = https://www.lsbin.com/json.load(jsonFile)print(data['firstname'])jsonFile.close()

输出:
Python JSON处理教程(如何使用JSON())

文章图片
更新和删除 JSON 对象在 Python 中更新 JSON 对象就像使用我们导入的 json 包中的内置 update() 函数一样简单。
Python JSON处理教程:update 方法用于向我们在代码中声明的 JSON 字符串添加新的键值对。我们可以添加单个键值对或添加将附加到前一个 JSON 字符串的整个字典。
句法:
jsonObject.update(KeyValuePair)

以下代码实现了 update() 方法。
代码:
import jsonjsonData = 'https://www.lsbin.com/{"ID":"123", "Name": "Hamza"}'data = https://www.lsbin.com/json.loads(jsonData)newData = {"DOB": "22-10-2001"}data.update(newData)print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
字典“newData”已添加到“jsonData”对象中。这就是 update() 方法执行其功能的方式。
转到删除功能。json 包中没有内置函数来删除键值对。因此,我们将不得不编写更多代码来执行此功能。
下面是我们如何在 JSON 对象上实现删除。请记住,我们使用的 JSON 文件与我们在本教程开头提到的相同。
代码:
import jsonfile = open('jsonData.json', 'r')data = https://www.lsbin.com/json.load(file)file.close()if'firstname' in data:del data[ 'firstname']print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
让我们来看看这里到底发生了什么。当我们检查字典中是否存在 'firstname' 时,Python 会检查字典,如果键存在,我们可以使用 del 关键字删除该键值对。
Python JSON处理指南:JSON 排序我们可以根据键按字母顺序对 JSON 对象进行排序。为此,我们使用 json.dumps() 方法以及该方法的一些参数。使用此方法的语法如下:
句法:
json.dumps(data, sort_keys=True)

这里我们将两个参数传递给函数 json.dumps()。第一个“数据”包含我们存储在 Python 变量中的 JSON 对象。
第二个是 sort_keys 参数,当设置为 True 时,按字母顺序对数据进行排序并以字符串形式返回 JSON 对象。以下代码使用此功能:
代码:
import jsonfile = open('jsonData.json', 'r')data = https://www.lsbin.com/json.load(file)file.close()print(json.dumps(data, sort_keys=True))

输出:
Python JSON处理教程(如何使用JSON())

文章图片
查看代码,很容易理解发生了什么。首先,我们加载数据并将其存储到变量“data”中,然后关闭文件。
然后在单个语句中,我们在函数 json.dumps() 和 sort_keys=True 参数的帮助下打印排序的数据。
创建 JSON 对象要创建一个 JSON 对象,我们需要有一个包含我们数据的 Python 字典。我们将使用与之前使用的方法相同的方法,即 json.dump() 和 json.loads()。下面的代码实现了这个功能:
代码:
import jsondata = https://www.lsbin.com/{"Name":"John Doe", "ID":"123"}json_dump = json.dumps(data)json_data = https://www.lsbin.com/json.loads(json_dump)print(json_data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
这里我们将一些数据定义为 Python 字典。然后我们使用 json.dumps() 方法并将 Python 字典作为参数传递。
这会将我们的 Python 字典转换为可以传递给 json.loads() 方法的字符串。然后 json.loads() 方法将此字符串转换为 JSON 对象,我们可以在打印时看到输出。
将 JSON 写入文件要将 JSON 对象写入 JSON 文件,我们可以使用 json.dump() 方法。此方法获取我们将写入文件的数据以及我们将数据写入的文件。下面的代码解释了我们如何做到这一点!
代码:
import jsonfile = open('jsonData.json', 'r')data = https://www.lsbin.com/json.load(file)file.close()newData = {"DOB": "22-10-2001"}data.update(newData)file = open('jsonData.json', 'w')json.dump(data, file)file.close()print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
Python如何使用JSON?首先,我们以读取模式打开文件并将文件内容存储到变量“data”中。然后我们更新“数据”并将新的键值对添加到这个变量中。
之后,我们再次以写入模式打开文件。我们使用 json.dump() 函数并将其作为参数传递给数据和文件,然后关闭文件。
输出显示数据已更新,我们可以通过查看 json 文件来确认这一点。
解析 JSON我们可以通过简单地使用 json.loads() 方法来解析 Python 中的 JSON 字符串。此方法将 JSON 字符串转换为 Python 字典,该字典可以根据字典中存在的键进行索引。
句法:
json.loads(jsonString)

这里的 'jsonString' 是作为参数传递到方法中的 JSON 字符串。该方法将解析 JSON 字符串并返回一个 Python 字典,该字典可以进一步存储在变量中。
我们还可以对这个变量执行所有字典方法。下面的代码实现了这个功能。
代码:
import jsondata = 'https://www.lsbin.com/{"Name":"John Doe", "ID":"123"}'json_data = https://www.lsbin.com/json.loads(data)print(json_data['Name'])

输出:
Python JSON处理教程(如何使用JSON())

文章图片
在此代码中,我们将 JSON 字符串“data”作为参数传递给方法 json.loads(),该方法返回存储在变量“json_data”中的字典。打印语句验证该方法是否成功运行。
Python JSON处理教程:对象转 JSON可以使用我们之前讨论过的相同 json.dumps() 方法将 Python 对象转换为 JSON。让我们来看看这将如何完成。
代码:
import jsonclass Car:def __init__(self, model, make, engine_capacity):self.model = modelself.make = makeself.engine_capacity = engine_capacitycar_1 = Car('2001', 'Honda', '1.8L')json_data = https://www.lsbin.com/json.dumps(car_1.__dict__)print(json_data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
在这段代码中,我们首先创建了一个 Car 类,然后创建了这个类的对象。
然后我们将使用 json.dumps() 函数并将汽车对象作为“car.__dict__”传递。'__dict__' 将所有成员变量转换为字典并将其传递给 json.dumps() 方法。
正如我们从输出中看到的,对象已被转换为 JSON。
JSON 到对象要将 JSON 字符串转换为 Python 对象,我们需要一个类,我们必须创建其对象并使用 json.loads() 方法,如下所示:
代码:
import jsonclass Car:def __init__(self, model, make, engine_capacity):self.model = modelself.make = makeself.engine_capacity = engine_capacityjson_data = 'https://www.lsbin.com/{"model": "2001", "make": "Honda", "engine_capacity": "1.8L"}'data = https://www.lsbin.com/json.loads(json_data)car_1 = Car(**data)print(car_1.engine_capacity, car_1.make, car_1.model)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
Python如何处理JSON?在这里,我们将数据加载到变量“data”中,然后将此字典作为关键字参数传递给汽车类。我们可以在输出中看到对象已经创建。
字节转 JSON将字节字符串或字典转换为 JSON 非常简单。我们只需要使用内置的 json.dumps() 函数。
句法:
json.dumps(bytesString)

以下代码说明了此功能。
代码:
import jsonbyte_str = b'{"Name":"Hamza", "ID":"123"}'dec_str = byte_str.decode('utf-8')data = https://www.lsbin.com/json.dumps(dec_str)print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
这里我们首先定义了一个字节字符串,然后将其解码为'utf-8' 字符集。之后,我们简单地使用 json.dumps() 将字符串转换为 JSON 字符串。
Python如何使用JSON?将 HTML 转换为 JSON要将 HTML 转换为 JSON 对象,我们必须使用另一个名为 html-to-json 的 Python 包。这个包所做的基本上是将一个 HTML 文件转换成一个 JSON 对象。
我们可以通过在命令提示符或终端中使用以下命令来安装此软件包:
句法:
pip install html-to-json

首先,我们需要将它导入到我们的程序中。
句法:
import html_to_json

导入后,我们现在可以编写代码将 HTML 文件转换为 JSON 对象。这是我们将使用的示例 HTML 文件:
代码:
< !doctype html> < html lang="en-US"> < head> < title>Sample Html Doc< /title> < /head> < body> < div> < h1>First Heading< /h2> < p>This is a sample HTML Doc< /p> < /div> < /body> < /html>

现在,我们将继续编写代码以将此 HTML 转换为 JSON。
代码:
import jsonimport html_to_jsonfile = open("sample.html", "r")html = file.read()file.close()output_json = html_to_json.convert(html)print(output_json)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
在这段代码中,我们使用 html-to-json 包将 HTML 转换为 json。为此,我们使用了 html_to_json.convert() 方法并传递包含所需 HTML 的字符串。
Python JSON处理教程:JSON 到 SQL将 JSON 对象转换为 SQL 表需要一些额外的步骤,而不仅仅是使用单一方法。这里我们使用了两个以前没有使用过的新包。
首先是 Pandas 包,它是一个数据分析工具。我们将使用它来将我们的 JSON 对象转换为Pandas DataFrame。
第二个包是 sqlalchemy。这个包是一个数据库工具包和一个对象关系映射器(ORM)。以下是我们如何 import 可以导入这些包:
句法:
import pandas as pdfrom sqlalchemy import create_engine

这里的 create_engine 是一个帮助我们连接SQLite 数据库的方法。以下代码说明了此功能:
代码:
import jsonimport pandas as pdfrom sqlalchemy import create_enginewith open("jsonsample.json") as f:data = https://www.lsbin.com/json.load(f)df = pd.DataFrame(data)engine = create_engine("sqlite:///my_data.db")df.to_sql("Sample_Data", con=engine)

当我们运行此代码时,会创建一个名为“my_data.db”的数据库。之后,数据被插入到数据库中的表名“Sample_Data”下。
我们可以通过在命令提示符或终端中运行以下命令来确认这一点:
代码:
$ sqlite my_data.db sqlite> .schema

Python JSON处理教程(如何使用JSON())

文章图片
根据 JSON 对象,你可以看到已创建表并插入数据。
Python如何处理JSON?JSON 加载() VS 加载()这两者的区别在于,在 load() 方法中,我们将 JSON 文件作为参数传递,然后我们可以将其存储在一个变量中。
Python JSON处理指南:在 load() 方法中,我们传递一个 JSON 字符串,该字符串定义为 Python 变量并将该字符串序列化为 JSON 对象。以下代码示例显示了此功能。
代码:(load())
import jsonjsonFile = open('jsonData.json')data = https://www.lsbin.com/json.load(jsonFile)print(data)jsonFile.close()

输出:
Python JSON处理教程(如何使用JSON())

文章图片
代码:(load())
import jsonjsonData = 'https://www.lsbin.com/{"Name": "Hamza", "ID":"12345"}'data = https://www.lsbin.com/json.loads(jsonData)print(data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
JSON dumps() VS loads()Python如何使用JSON?json.loads() 和 json.dumps() 方法是对立的。json.loads() 方法接受一个字符串并返回一个可以进一步使用的 JSON 对象。
而 json.dumps() 方法接受一个 JSON 对象并返回一个包含所有数据的字符串。
以下代码示例说明了此功能:
代码:
import jsonjson_data = 'https://www.lsbin.com/{"Name":"Hamza", "ID":"123"}'data = https://www.lsbin.com/json.loads(json_data)print("loads method: ", data)dumps_data = https://www.lsbin.com/json.dumps(data)print("dumps method: ", dumps_data)

输出:
Python JSON处理教程(如何使用JSON())

文章图片
【Python JSON处理教程(如何使用JSON())】我希望你喜欢这个Python JSON处理教程,希望以上内容可以帮助到你,如有任何问题,请在下方评论和分享。

    推荐阅读