首页 前端知识 Python 处理 JSON 数据的详细指南

Python 处理 JSON 数据的详细指南

2024-08-15 22:08:12 前端知识 前端哥 440 926 我要收藏

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它由独立的成对的名称–值对(key–value pairs)组成,并经常用于 web 开发、数据交换和配置文件。在 Python 中,我们可以通过 json 模块来方便地处理 JSON 数据。本文为你提供了一个详尽的 Python 处理 JSON 数据的指南,说明了 json 模块提供的多种方法以及如何使用这些方法。

1. Python 与 JSON 的交互

在 Python 中,我们可以通过 json 模块来方便地处理 JSON 数据。这个模块提供了 Serializer 和 Deserializer(解码器和编码器)两种特殊功能,从而能够将 Python 数据类型转换为 JSON 数据格式和 vice versa。

2. JSON 的数据结构

JSON 是一种有序和嵌套的数据结构。JSON 数据可以采用三种主要类型的数据结构:标量、对象、和数组。

(1)标量数据类型

JSON 数据可以是布尔类型、数值类型和字符串类型。简单的例子就是 `true`、`false`、`null`、`123`、`456.78`、`"hello"`等。

(2)对象数据类型(associative arrays)

JSON 数据可以表示为一个链表式的名称与值对(key–value pairs),我们成为对象。每一个名称-值对是一条记录,其中名称(key)是用引号表示的字符串,值(value)是 JSON 数据类型。在 Python 中,这类数据可以使用字典来表示。

(3)数组数据类型(arrays)

JSON 数据还可以是一组具有序列的值组成的集合,我们成为数组(array)。在 Python 中,数组可以使用 list 来表示。

3. Python JSON 对象

在 Python 中,如果要使用 JSON 进行数据交换,数据类型的不同还要适应其在网络请求中的采用,而这就推到了 `dict` 变成了 Python JSON 类的适用变量的地方。例如:

```python

import json

person = {"name": "John Doe","age": 28,"city":"New York"}

print(type(person)) # dict

result = json.dumps(person) # dict --> json data

print(type(result)) # str

result = json.loads(result) # json data --> dict

print(type(result)) # dict

print(result) # outputs: {"name": "John Doe","age": 28,"city":"New York"}

```

此代码块中第一行中创建一个不同类型的数据("name": "John Doe", "age": 28, "city":"New York")并将其形成一个 Python `dict`. `json.dumps()`第三行用于把 `dict` 转为 `json` 字符串 `result`, `json.loads()`第五行用来将 `json` 字符串 `result`转为原始 `dict`.

4. Python JSON 数组

处理 JSON 数组中的数据时,我们需要创建一个列表(list),因为 JSON 中的数组被视为对象数组。例如:

```python

import json

person = [{"name": "John Doe","age": 28,"city":"New York"},{"name": "Jane Doe","age": 22,"city":"California"},{"name": "Doe Son","age": 18,"city":"Virginia"}]

print(type(person)) # list

result = json.dumps(person)

print(type(result)) # str

result = json.loads(result)

print(type(result)) # list

print(result) # output: [{"name": "John Doe","age": 28,"city":"New York"},{"name": "Jane Doe","age": 22,"city":"California"},{"name": "Doe Son","age": 18,"city":"Virginia"}]

```

在此代码片段中,第三行展示了创建一个包含多个对象数据的列表 `person`,然后调用 `json.dumps()`和 `json.loads()`将这个列表转换成 JSON 格式字符串,再转换回列表。

5. Python JSON 函数介绍

在 JSON 数据处理中,JSON 模块还提供了多种能够完成特定任务的方法。有了这些方法,Python 的 JSON 编码和解码变得非常容易。以下是一些最常用的这些方法。

(1)`json.dumps(data)`:这个函数用于将Python的任何类型数据(集合/数组,类,异常等)转化为 JSON 格式的字符串。

```python

data = {'name':'John', 'age': 28, 'city':'New York'}

data_json = json.dumps(data)

print(type(data_json), data_json) # <class 'str'> {"name": "John", "age": 28, "city": "New York"}

```

(2)`json.loads(text)`:这个函数把一个 JSON 格式字符串转化为相应的 Python 数据对象(集合,类等)。

```python

text = '{"name": "John", "age": 28, "city": "New York"}'

data_back = json.loads(text)

print(type(data_back), data_back) # <class 'dict'> {'name': 'John', 'age': 28, 'city': 'New York'}

```

(3)`json.dump(obj, fp, separators, encoded, ignore_nanes=False, sort_keys=False)`:将Python object转换成 JSON 的一行形式,但不换行,并存储在 I/O object。

```python

# with open('person.json', 'w') as f:

# json.dump(person, f)

data = {'name': 'John', 'age': 28, 'city':'New York'}

fp = open("sample.json", "w")

json.dump(data, fp)

fp.close()

```

(4)`json.dumps(obj, filename)`:类似 json.dump,不过实际保存到文件里,后面的貌似是电文的时间传递?。

总结

Python JSON 处理比其他许多编程语言具有显著的优势。通过使用 python 内置的 JSON 模块,我们可以轻松地处理 JSON 数据。这篇文章提供了如何在 Python 中序列化和反序列化 JSON 数据的简明教程,并深入探讨了其主要数据结构,函数,以及那些特别有用的函数。希望这个系列可以帮助你更轻松地学习和利用 Python JSON 处理。如果你有任何问题,请随时在下面留言。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/15743.html
标签
windows
评论
发布的文章

HTML5学习记录

2024-04-29 12:04:01

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!