datetime模块

datetime模块

相比time来说,datetime模块接口更直观,更容易调用

方法(类)描述
datetime.date表示日期(类),常用属性year,month,day
datetime.time表示时间(类),常用属性hour,minute,second,microsecond
datetime.datetime表示日期
datetime.timedelta表示时间间隔
datetime.tzinfo与时区有关的信息
>>> datetime.datetime.now()
datetime.datetime(2019, 7, 26, 10, 2, 18, 295171)
>>> print(datetime.datetime.now())
2019-07-26 10:02:45.906965

sys模块

sys模块是与python解释器交互的一个接口

处理命令行参数

在解释器启动后,argv列表包含了传递脚本的所有参数,列表的第一个元素是脚本自身的名称。

序列化模块

序列化概念:

将一个对象从内存中转换为可存储(字符串类型)或者可传输(bytes)类型的过程。

python中叫pickling。

为什么要使用序列化?

  • 持久化数据类型
  • 跨平台交互使用
  • 使程序更易维护

json

json格式在各个语言中都可以通用序列化格式。在json中,所有字符串必须为“”。

json类型python类型
{}dict
[]list
“string”str
1234.56int/float
true/falseTrue/False
nullNone

json优缺点

  • 优点- 所有数据类型都是各语言通用的
  • 缺点:
    • json只支持比较少的数据类型
    • 对数据类型的约束十分严格
      • 字典中的key必须是字符串
      • json只支持列表,字典,数值,字符串以及布尔值

查看json的方法和属性

四个功能

  • dump
  • dumps
  • loads
  • load
 dic={"name":"city","age":20,"typr":"un"}
    >>> sr_dic=json.dumps(dic)
>>> type(sr_dic)
<class 'str'>
>>> sr_dic
'{"name": "city", "age": 20, "typr": "un"}'
# 序列化过程
>>> dic_2=json.loads(sr_dic)
>>> type(dic_2)
<class 'dict'>
>>> dic_2
{'name': 'city', 'age': 20, 'typr': 'un'}

如果是元组,序列化时强转为列表;若元组作为字典的键,序列化时报错。

如果把数据类型直接序列化写入文件中,可以用dump和load方法。

import json
dic = {"name": "city college", "age": 20, "type": "university", 2: 6}
with open('dump_json', 'w') as f:
    json.dump(dic, f) #dump方法可以接收一个文件句柄。直接将字典--->字符串,写入文件中

with open('dump_json') as f:
    ret = json.load(f)
    print(ret, type(ret))

import json
dic = {"name": "city college", "age": 20, "type": "university", 2: 6}
dic2 = {"city": "HangZhou", "history": 5000}
with open('dump_json', 'w') as f:
    str_dic1 = json.dumps(dic)
    str_dic2 = json.dumps(dic2)
    f.write(str_dic1 + '\n')
    f.write(str_dic2 + '\n')

with open('dump_json') as f:
    for line in f:
        ret = json.loads(line)
        print(ret)
  #
{'name': 'city college', 'age': 20, 'type': 'university', '2': 6}
{'city': 'HangZhou', 'history': 5000}

pickle

只用于python

内存中结构化的数据<—>格式pickle<—>bytes类型<—>保存在文件或者基于网络传输

pickle的优缺点

  • 优点

    • 支持python中几乎所有类型
    • pickle会把数据类型序列化为bytes类型
  • 缺点

    • 只支持python

模块提供四个功能

  • 序列化
    • dumps
    • dump
  • 反序列化
    • load
    • loads
import pickle
dic ={"name":"city","age":20,"type":"university",2:6}
dic_b=pickle.dumps(dic)
print(type(dic_b))
dic_b=pickle.loads(dic_b)
print(type(dic_b))
#
<class 'bytes'>
<class 'dict'>

":20,"type":"university",2:6}
dic_b=pickle.dumps(dic)
print(type(dic_b))
dic_b=pickle.loads(dic_b)
print(type(dic_b))
#
<class 'bytes'>
<class 'dict'>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值