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
原文地址:https://www.cnblogs.com/woaixuexi9999/p/9220557.html