Python读写JSON文件、异常和模块

1.Python中JSON文件的读写

1.1写操作

在Python中,处理JSON文件通常使用标准库中的json模块。对于写操作,即将Python对象(如字典、列表等)保存到JSON文件中,你可以使用json.dump()函数或json.dumps()函数,具体使用哪一个取决于你的具体需求。

import json

list1 = [('lihua', '123456'), ('wangwu', '111111'), ('钱六', '222222')]
# 写入
with open('info.json', 'w', encoding='utf-8') as f:
    # json.dump(list1,f)
    # 使得中文在JSON文件中也能显示
    # json.dump(list1,f,ensure_ascii=False)
    # 在json文件中缩进
    json.dump(list1, f, ensure_ascii=False, indent=2)

使用with open()的形式写入,dump()方法是json的内置方法,ensure_ascii=False是为了让中文能在JSON文件中直接显示,indent=2则是代表的缩进为2.

1.2读操作

# 读取
with open('info.json', encoding='utf-8') as f:
    data = json.load(f)
    for i in data:
        print(i)

结果:

['lihua', '123456']
['wangwu', '111111']
['钱六', '222222']

2.Python的异常处理

2.1异常处理的必要性

主要用处:

  1. 提高程序的健壮性:通过捕获并处理异常,程序可以在遇到错误时继续执行,而不是立即停止。这提高了程序的健壮性和稳定性,使得它更能够应对各种不可预见的情况。

  2. 提供更好的用户体验:对于用户交互的程序,异常处理可以用来给用户显示更友好的错误消息,而不是显示技术性的错误堆栈跟踪。这有助于用户理解发生了什么问题,并可能指导他们如何解决问题或如何避免未来的错误。

  3. 简化调试过程:通过捕获异常并打印有用的调试信息,开发者可以更容易地诊断问题所在。此外,异常处理还可以用来记录错误日志,这对于后续的问题分析和修复非常有帮助。

  4. 支持条件性执行:有时,程序中的某些代码块只有在特定条件下才应该执行。异常处理可以用来实现这种条件性执行,通过故意引发异常并在捕获异常的代码块中执行特定操作。

  5. 清理资源:在发生异常时,可能需要释放或清理已分配的资源,如关闭文件、数据库连接或释放内存。通过异常处理,可以确保即使在发生错误时,这些资源也能被正确地管理和释放。

  6. 实现错误回滚:在事务性操作中,如果某个步骤失败,可能需要回滚到之前的状态。异常处理可以用来检测错误,并在必要时触发回滚操作,以保持数据的一致性和完整性。

  7. 提高代码的可读性和可维护性:通过将错误处理逻辑与正常执行逻辑分开,异常处理可以使代码更加清晰和易于维护。这有助于其他开发者理解代码的目的和工作方式,以及如何在出现错误时进行处理。

2.2健壮性案例1

try:
    num=int(input('请输入数字:'))
    a=1/num
    print(f'a:{a}')
except ValueError:
    print('请输入正确的数字')
except ZeroDivisionError:
    print('除数不能为0')

2.3异常处理的完整流程

try:
    num=int(input('请输入数字:'))

    print(num)
except ValueError:
    print('请输入正确的数字')
except Exception as ex:
    print('ex...')
else:
    print('没有异常')
finally:
    print('有没有异常都运行')

3.模块

Python模块是Python编程中的一个核心概念,它允许你将相关的代码组织在一起,以便在其他Python脚本或程序中重用。

3.1引入模块的两种常用方式

# 模块导入
# 方式1
import random
print(random.randint(1,20))
# 方式2
from random import randint
print(randint(1,9))

3.2自制模块调用案例

以下是自制的一个add模块,里面输出了一个__name__,在Python中,__name__ 是一个内置的特殊变量,它代表模块的名字。这个变量的值取决于模块是如何被使用的

# 模组名称为tools.py
def add(a, b):
    return a + b


print('tools:', __name__)

该模块运行的结果为:

通过主方法引用,如下

import tools
print(tools.add(100,200))

结果为:

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值