JSON 函数
使用 JSON 函数需要导入 json 库:import json
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象
dumps函数:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw
以下实例将数组编码为 JSON 格式数据:
#!/usr/bin/python
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data2)
以上代码执行结果为:
[{“a”: 1, “c”: 3, “b”: 2, “e”: 5, “d”: 4}]
格式转化表
hashlib 加密模块
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法常用方法
import hashlib
md5 = hashlib.md5() # 获取md5对象 ()!!!
md5.update(password.encode(‘utf-8’)) # 加密 切记要指定编码 encode(‘utf-8’)
print(md5.hexdigest()) # 用hexdigest()获取计算的md5值
常用通过时间取MD5
import time
import hashlib
m = hashlib.md5(str(time.time()).encode('utf-8')) # 取时间,把时间格式转成str,定义 编码
print(m.hexdigest()) # 用hexdigest()获取计算的md5值
Python 异常处理
什么是异常?
- 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
- 一般情况下,在Python无法正常处理程序时就会发生一个异常。
- 异常是Python对象,表示一个错误。
- 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
以下为简单的try…except…else的语法:
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了’name’异常
except <名字>,<数据>:
<语句> #如果引发了’name’异常,获得附加的数据
else:
<语句> #如果没有异常发生
下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,且并未发生异常:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print "Error: 没有找到文件或读取文件失败"
else:
print "内容写入文件成功"
fh.close()
以上程序输出结果:
$ python test.py
内容写入文件成功
$ cat testfile # 查看写入的内容
这是一个测试文件,用于测试异常!!
用户自定义异常
通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。
class Networkerror(RuntimeError):
def __init__(self, arg):
self.args = arg
在你定义以上类后,你可以触发该异常,如下所示:
try:
raise Networkerror("Bad hostname")
except Networkerror,e:
print e.args
Python中的异常处理方法
try: 可能出现异常的代码块except Exception as e: print("异常的类型是:%s"%type(e)) print("异常的内容是:%s"%e)else: print('如果代码块不抛出异常会执行此行代码!')finally: print('不管代码块是否抛出异常都会执行此行代码!')
raise案例
raise通过raise显式地引发异常。一旦执行了raise语句,raise后面的语句将不能执行
演示raise用法
try:
s = None
if s is None:
print(“s 是空对象”)
# 如果引发NameError异常,后面的代码将不能执行
raise NameError
# 这句不会执行,但是后面的except还是会走到
print(len(s))
except TypeError:
print(“空对象没有长度”)
python标准异常
- BaseException 所有异常的父类
- SystemExit 解释器请求退出
- KeyboardInterrupt 用户中断执行(通常是输入Ctrl+C)
- Exception 常规错误的父类
- NameError: name ‘a’ is not defined
- TypeError: Can’t convert ‘int’ object to str implicitly
- IndexError: list index out of range
- SyntaxError: unexpected EOF while parsing