python详解json模块用法

发布时间 2023-04-25 15:53:14作者: 老板娘来碗三鲜粉

JSON是什么

JSON是一种轻量级的数据交换格式,它基于JavaScript语言的一个子集,采用完全独立于编程语言的文本格式来表示数据,因此它可以被广泛地应用于不同的编程语言和平台之间的数据交换。

JSON格式数据由键值对构成,其中键是字符串,值可以是字符串、数字、布尔值、数组、对象或null。

优缺点

JSON 的优点:

  1. 易于阅读和编写:JSON 使用文本格式表示数据,易于人类阅读和编写。

  2. 跨平台:JSON 数据可以被大多数编程语言和平台支持,可以在不同的平台之间进行数据交换。

  3. 轻量级:JSON 格式的数据相对较小,占用带宽和存储空间较少,可以提高网络传输效率。

  4. 易于扩展:JSON 格式的数据可以嵌套和包含数组,可以表示复杂的数据结构,并且易于扩展和修改。

  5. 易于网络传输:JSON 格式的数据可以通过网络传输,并且可以被大多数编程语言和平台所支持,非常适合用于 Web 应用程序中。

JSON 的缺点:

  1. 不支持二进制数据:JSON 格式只支持字符串、数字、布尔值、数组、对象或 null,不支持二进制数据的传输。

  2. 缺乏数据类型:JSON 数据不区分数据类型,需要在应用程序中进行解析和处理。

  3. 容易出现语法错误:JSON 格式的数据需要符合一定的语法规则,如果数据格式错误,容易出现解析错误,需要进行错误处理。

  4. 安全性:由于 JSON 数据可以包含 JavaScript 代码,因此需要特别注意安全问题,防止被攻击。

Python--json模块

  当我们需要在 Python 中处理 JSON 格式的数据时,Python 标准库中提供了一个称为json的模块,该模块包含了多个函数,可用于将 Python 对象转换为 JSON 字符串或者将 JSON 字符串转换为 Python 对象。

常用的语法有json.dumps(),json.loads(),json.dump(),json.load(),

json.dumps() 和json.loads()用于将 JSON 格式字符串与 Python 对象之间相互转换,而json.dump()和json.load()用于读写 JSON 数据到文件或流中。

这里是它们之间的区别:

  • json.dumps() 接受一个 Python 对象并返回一个 JSON 格式的字符串,而json.loads()接受一个 JSON 格式的字符串并返回一个 Python 对象。
  • json.dump()将 Python 对象以 JSON 格式写入到一个类文件对象中,而json.load()从一个类文件对象中读取 JSON 格式的数据并将其转换为 Python 对象。

dumps()方法

import json

# Python 对象
person = {
    'name': 'Alice',
    'age': 30,
    'city': 'New York'
}

# 将 Python 对象转换为 JSON 字符串
person_json = json.dumps(person)

# 输出 JSON 字符串
print(person_json)

在上述例子中,我们首先导入了json模块,然后定义了一个 Python 字典对象person。

接着,我们使用json.dumps()函数将person对象转换为 JSON 字符串,并将结果保存在person_json变量中。

打印结果如下:

{"name": "Alice", "age": 30, "city": "New York"}

loads()方法

import json

# JSON 字符串
person_json = '{"name": "Alice", "age": 30, "city": "New York"}'

# 将 JSON 字符串转换为 Python 对象
person = json.loads(person_json)

# 输出 Python 对象
print(person)

在上述例子中,我们定义了一个 JSON 字符串person_json()。接着,我们使用json.load()函数将person_json()字符串转换为 Python 对象,并将结果保存person变量中。

打印结果如下:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

 

当我们需要读写 JSON 格式的文件时,可以使用json模块中的load()和dump()方法。load()方法用于从 JSON 文件中读取数据并将其转换为 Python 对象,而dump()方法用于将 Python 对象转换为 JSON 格式并将其写入文件。

首先,我们需要创建一个名为example.json的 JSON 文件,其内容如下

{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}

load()方法

接下来,我们可以使用load()方法将该文件中的数据读取为 Python 对象:

import json

# 从 JSON 文件中读取数据并转换为 Python 对象
with open('example.json') as f:
    data = json.load(f)

# 输出 Python 对象
print(data)

输出结果如下:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

dump()方法

接下来,我们可以修改该 Python 对象,并使用dump()方法将其写入到 JSON 文件中:

import json

# 从 JSON 文件中读取数据并转换为 Python 对象
with open('example.json') as f:
    data = json.load(f)

# 修改 Python 对象
data['age'] = 35

# 将 Python 对象转换为 JSON 格式并写入文件
with open('example.json', 'w') as f:
    json.dump(data, f)

# 输出修改后的 Python 对象
print(data)

输出结果如下:

{'name': 'Alice', 'age': 35, 'city': 'New York'}

最后,我们可以再次查看example.json文件的内容,可以发现其已经被更新为修改后的数据:

{
  "name": "Alice",
  "age": 35,
  "city": "New York"
}

这就是load()和dump()方法的基本用法,可以使用它们来方便地读写 JSON 文件。