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异常处理的必要性
主要用处:
提高程序的健壮性:通过捕获并处理异常,程序可以在遇到错误时继续执行,而不是立即停止。这提高了程序的健壮性和稳定性,使得它更能够应对各种不可预见的情况。
提供更好的用户体验:对于用户交互的程序,异常处理可以用来给用户显示更友好的错误消息,而不是显示技术性的错误堆栈跟踪。这有助于用户理解发生了什么问题,并可能指导他们如何解决问题或如何避免未来的错误。
简化调试过程:通过捕获异常并打印有用的调试信息,开发者可以更容易地诊断问题所在。此外,异常处理还可以用来记录错误日志,这对于后续的问题分析和修复非常有帮助。
支持条件性执行:有时,程序中的某些代码块只有在特定条件下才应该执行。异常处理可以用来实现这种条件性执行,通过故意引发异常并在捕获异常的代码块中执行特定操作。
清理资源:在发生异常时,可能需要释放或清理已分配的资源,如关闭文件、数据库连接或释放内存。通过异常处理,可以确保即使在发生错误时,这些资源也能被正确地管理和释放。
实现错误回滚:在事务性操作中,如果某个步骤失败,可能需要回滚到之前的状态。异常处理可以用来检测错误,并在必要时触发回滚操作,以保持数据的一致性和完整性。
提高代码的可读性和可维护性:通过将错误处理逻辑与正常执行逻辑分开,异常处理可以使代码更加清晰和易于维护。这有助于其他开发者理解代码的目的和工作方式,以及如何在出现错误时进行处理。
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))
结果为: