python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python JSON

Python中JSON使用方式的超详细教程

作者:长风清留扬

这篇文章主要介绍了是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,本文将详细介绍Python中JSON使用方式,有需要的小伙伴可以了解下

什么是JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集,但JSON是独立于语言的,很多编程语言都支持JSON格式数据的生成和解析。

JSON的构造

对象(Object)

定义

键(Key)

值(Value):

结构示例

{  
    "name": "Alice",  
    "age": 30,  
    "city": "New York",  
    "isStudent": false,  
    "skills": ["Python", "Java", "C++"]  
}

数组(Array)

定义:

值:

数组中的值可以是任何类型,包括字符串、数字、布尔值、数组、对象或null。

结构示例

[  
    "apple",  
    "banana",  
    "cherry",  
    {  
        "name": "Alice",  
        "age": 30  
    },  
    [1, 2, 3, 4, 5]  
]

嵌套结构

定义:

JSON允许对象和数组之间互相嵌套,从而构造出复杂的数据结构。

结构示例

{  
    "name": "Bob",  
    "children": [  
        {  
            "name": "Alice",  
            "age": 10  
        },  
        {  
            "name": "Charlie",  
            "age": 7  
        }  
    ],  
    "address": {  
        "street": "123 Main St",  
        "city": "Anytown",  
        "state": "CA"  
    }  
}

注意事项

数据类型:

键名唯一性:

在同一个对象中,键名是唯一的,不能重复。

排序:

JSON对象中的键值对是无序的,即键名不保证按照插入顺序排列。如果需要有序性,可以在生成JSON字符串时通过指定参数进行排序。

空值:

JSON中可以使用null来表示空值或不存在的值。

Json在Python中的对应关系

PythonJSON
dictobject
list, tuplearray
str, unicodestring
int, long, floatnumber
Truetrue
Falsefalse
Nonenull

Python中JSON的常用方法

方法名称描述
json.loads()将JSON格式的字符串解析成Python对象(如字典或列表)
json.dumps()将Python对象(如字典或列表)转换成JSON格式的字符串
json.load()从文件中读取JSON格式的数据,并解析成Python对象
json.dump()将Python对象转换成JSON格式的数据,并写入文件
json.JSONDecoder()创建一个JSON解码器对象,用于解析JSON字符串(通常直接使用json.loads()更常见)
json.JSONEncoder()创建一个JSON编码器对象,用于将Python对象转换成JSON字符串(通常直接使用json.dumps()更常见)
json.JSONDecodeError异常类,用于处理JSON解码时发生的错误

json.loads()

json.loads() 是Python标准库 json 模块中的一个函数,用于将JSON格式的字符串解析(解码)成Python对象。这个过程是反序列化的一部分,即将数据从一种格式(在这个情况下是JSON字符串)转换成另一种格式(在这个情况下是Python的数据结构,如字典或列表)。

参数

返回值

Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。如果JSON字符串表示的是其他类型(如字符串、数字、布尔值、null),则返回相应的Python类型。

示例

import json  
  
# 一个简单的JSON字符串  
json_str = '{"name": "Alice", "age": 30, "is_student": false}'  
  
# 使用json.loads()将JSON字符串解析成Python对象  
python_obj = json.loads(json_str)  
  
# 打印解析后的Python对象  
print(python_obj)  # 输出: {'name': 'Alice', 'age': 30, 'is_student': False}  
  
# 访问解析后的对象属性  
print(python_obj['name'])  # 输出: Alice  
print(python_obj['age'])   # 输出: 30  
print(python_obj['is_student'])  # 输出: False

注意事项

json.dumps()

json.dumps() 是Python标准库 json 模块中的一个函数,用于将Python对象编码(序列化)成JSON格式的字符串。这个过程是序列化的一部分,即将数据从一种格式(在这个情况下是Python的数据结构,如字典或列表)转换成另一种格式(在这个情况下是JSON字符串)。

参数

返回值

str: 编码后的JSON格式的字符串。

示例

import json  
  
# 一个简单的Python对象(字典)  
python_obj = {'name': 'Alice', 'age': 30, 'is_student': False}  
  
# 使用json.dumps()将Python对象编码成JSON字符串  
json_str = json.dumps(python_obj)  
  
# 打印编码后的JSON字符串  
print(json_str)  # 输出: '{"name": "Alice", "age": 30, "is_student": false}'  
  
# 使用indent参数来美化输出  
pretty_json_str = json.dumps(python_obj, indent=4)  
print(pretty_json_str)  
# 输出:  
# {  
#     "name": "Alice",  
#     "age": 30,  
#     "is_student": false  
# }

注意事项

json.load()

json.load() 是Python标准库 json 模块中的一个函数,用于从文件中读取JSON格式的数据,并将其解析(解码)成Python对象。这个过程是反序列化的一部分,即将数据从一种格式(在这个情况下是JSON文件)转换成另一种格式(在这个情况下是Python的数据结构,如字典或列表)。

参数

返回值

Python对象:通常是字典(对应于JSON对象)或列表(对应于JSON数组)。如果JSON文件表示的是其他类型(如字符串、数字、布尔值、null),则返回相应的Python类型。

示例

import json  
  
# 假设有一个名为'data.json'的文件,内容如下:  
# {  
#     "name": "Alice",  
#     "age": 30,  
#     "is_student": false  
# }  
  
# 打开JSON文件并读取数据  
with open('data.json', 'r', encoding='utf-8') as f:  
    python_obj = json.load(f)  
  
# 打印解析后的Python对象  
print(python_obj)  # 输出: {'name': 'Alice', 'age': 30, 'is_student': False}  
  
# 访问解析后的对象属性  
print(python_obj['name'])  # 输出: Alice

注意事项

json.dump()

json.dump() 是Python标准库 json 模块中的一个函数,用于将Python对象编码(序列化)成JSON格式,并将结果写入到一个文件中。这个过程是序列化的一部分,即将数据从一种格式(在这个情况下是Python的数据结构,如字典或列表)转换成另一种格式(在这个情况下是JSON文件)。

参数

返回值

None:json.dump() 不返回任何值,它将编码后的JSON数据直接写入到提供的文件对象中。

示例

import json  
  
# 一个简单的Python对象(字典)  
python_obj = {'name': 'Alice', 'age': 30, 'is_student': False}  
  
# 打开一个文件以写入JSON数据  
with open('output.json', 'w', encoding='utf-8') as f:  
    json.dump(python_obj, f)  
  
# 现在'output.json'文件包含了编码后的JSON数据

注意事项

到此这篇关于Python中JSON使用方式的超详细教程的文章就介绍到这了,更多相关Python JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文