python —— 5

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
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页