zoukankan      html  css  js  c++  java
  • 12.常见模块time、json模块

    1.time模块

    import time  #python中最基本的时间模块
    
    time.time()   #时间戳  (1970年1月1日00:00:00后经过的浮点秒数)
    
    time.localtime(time.time())  #时间元组
    time.struct_time(tm_year=2017, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=38, tm_sec=59, tm_wday=2, tm_yday=361, tm_isdst=0)
    
    #返回的元组的内容:
    #索引值(index)    属性(attribute)             值(value)
    #0                tm_year(年)                例如:2016
    #1               tm_mon(月)                1~12
    #2               tm_mday(日)                1~31
    #3               tm_hour(时)                0~23
    #4               tm_min(分)                0~59
    #5               tm_sec(秒)                0~60
    #6               tm_wday(星期几)           0~6(0代表星期一)
    #7               tm_yday(一年中的第几天)         1~366
    #8               tm_isdst(是否为夏令时)     0,1,-1(-1代表夏令时)

    格式化日期

    python中时间日期格式化符号:
    %y 两位数的年份表示(00-99%Y 四位数的年份表示(000-9999%m 月份(01-12%d 月内中的一天(0-31%H 24小时制小时数(0-23%I 12小时制小时数(01-12%M 分钟数(00=59%S 秒(00-59%a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366%p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身

    time模块,常用内置函数

    #time.time( )
    返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
    
    #time.localtime([secs])
    接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
    
    #time.asctime([tupletime])
    接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
    
    #time.strftime(fmt[,tupletime])
    接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
    
    #time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
    根据fmt的格式,把一个时间字符串,解析为时间元组。
    
    #time.mktime(tupletime)
    接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
    
    #time.sleep(secs)
    推迟调用线程的运行,secs指秒数。

    example:

    import  time
    
    t = time.time()
    print(t)  #返回当前时间戳
    
    # 时间元祖  localtime()
    print(time.localtime() )  # 默认返回当前 时间元组
    print(time.localtime(1115587738 ) )
    
    #  格式化
    ## 1. asctime()   # 默认时间格式。 输入时间元组
    print(time.asctime( time.localtime() ) )
    
    ## 2. 自定义时间格式   strftime
    # 2108-1-8   20:45:36   多少天  多少周
    # 不能使用中文
    t = time.strftime('%Y-%m-%d  %H:%M:%S %j %U',time.localtime() )
    print( t )
    
    
    #### strptime(), 时间格式的字符串 , 转换成时间
    
    s = '2017-5-6  20:16:32 '
    time_tu =  time.strptime(s,"%Y-%m-%d  %H:%M:%S ")
    print(time.strftime('%j',time_tu) )
    print( time_tu )
    
    print( time.mktime(time_tu ))
    
    ### sleep()
    for i in range(20):
        print(i)
        if i ==10:
            print('正在休息')
            # time.sleep(5)

    获取日历

    import calendar
    cal = calendar.month(2018, 1)
    print("以下输出2018年1月份的日历:")
    print(cal)

    2.json模块

    JSON全称是(JavaScript Object Notation)是一种轻量级的数据格式,一般用于前后台,数据的交互。
    
    导入 import json
    
    print(json.__all__)  
    常用的方法:dumps、loads、dump、load
    
    在使用之前 我们要了解两个名字 序列化和反序列化
    序列化: 把一个Python对象转化成json字符串
    反序列化: 把json字符串转化成python
    
    dumps :indent实现缩进, sort_keys 实现排序
    python对象json对象
    dict object
    list, tuple array
    str string
    int, float number
    None null
    True/False true/fase

    example:

    '''
    JSON全称是(JavaScript Object Notation)是一种轻量级的数据格式,
    一般用于前后台,数据的交互。
    '''
    ##  key - value
    
    import json
    
    user = {
        'name' :'jianeng',
        'age' : 18,
        'f' : 1.2,
        'language':('python','java'),
        'li':[1,2,3,4 ],
        'kong': None,
        't' : True,
        'f' : False
    }
    
    # print(json.__all__ )
    
    ## dumps   loads
    # dumps    序列化    python  ->  json
    
    a = json.dumps(user,indent=2,sort_keys=True )   # dumps -> json 格式的字符串
    print( a )
    print(type(a) )   #json 格式的字符串
    print( user)
    
    # loads   反序列化
    b = json.loads( a )
    print(type(b) )     # dict
    print(b)
    
    
    ##  dump    load     针对文件用的
    with open('temp.json','w+' ) as f:
        json.dump(user,f,indent=2,sort_keys=True )    # 序列化
    
    # f = open('temp.json','r+' )
    with open('temp.json','r+' ) as f:
        data = json.load(f)     # 反序列化f
    print(data )
    print(type(data) )
    print(data['name'] )

    3.作业

    1、用time模块的方法,把这种格式时间的字符串 '2011-11-11'  转成这种 时间格式:'2011/11/11'

    import time
    # '2011-11-11' ==> '2011/11/11'
    tmp_time = '2011-11-11'
    a = time.strptime(tmp_time, '%Y-%m-%d')
    # print(a)
    b = time.strftime('%Y/%m/%d', a)
    print(b)
    View Code

    2、把 Json 的四个方法 ,自己练习一遍

    3.写一个login函数 然后写一个装饰器,模拟登录过程:让程序延迟3秒 在延迟过程中输出正在验证

    """
    def login():
      print('登录成功')
    """

    import time
    
    def login_required(func):
        def wrapper(*args, **kwargs):
            print('正在验证...')
            time.sleep(2)
            return func(*args, **kwargs)
        return wrapper
    
    @login_required
    def login():
        print('登录成功')
        return 'code:200'
    
    a = login()
    print(a)
    View Code
  • 相关阅读:
    软件构架 课堂练习一
    《软件构架实践》阅读笔记06
    《软件构架实践》阅读笔记05
    《软件构架实践》阅读笔记04
    接口如何实现多态
    c++虚函数的作用是什么?
    java中修饰符作用范围
    Servlet生命周期
    ERP理解
    内部类和匿名内部类
  • 原文地址:https://www.cnblogs.com/woaixuexi9999/p/9220557.html
Copyright © 2011-2022 走看看