• sys模块&json模块&pickle模块


    sys模块&json模块&pickle模块

    sys模块

    一、导入方式

    import  sys
    

    二、作用

    与Python解释器交互

    三、模块功能

    3.1 经常使用

    sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    ----------------------------------------------------------
    sys.argv  #接收参数(用cmd执行文件时运行才有效)
    ----------------------------------------------------------
    sys.modules  #返回系统导入的模块字段,key是模块名,value是模块
    

    3.2一般使用

    用法 详解
    sys.modules.keys() 返回所有已经导入的模块列表
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
    sys.exit(n) 退出程序,正常退出时exit(0)
    sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
    sys.version 获取Python解释程序的版本信息
    sys.maxint 最大的Int值
    sys.maxunicode 最大的Unicode值
    sys.platform 返回操作系统平台名称
    sys.stdout 标准输出
    sys.stdin 标准输入
    sys.stderr 错误输出
    sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
    sys.exec_prefix 返回平台独立的python文件安装的位置
    sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
    sys.copyright 记录python版权相关的东西
    sys.api_version 解释器的C的API版本

    json模块

    一、导入方式

    import  json
    

    二、作用

    把对象(变量)从内存中变成可存储或传输的过程称之为序列化

    用python写了一个程序,用java写了一门程序,这两个程序需要数据之间交流,规定了一种多种语言通用的数据类型,json串

    在这我需要知道什么是序列化,什么是反序列化

    序列化:从python的字典(最常用)变成json串

    反序列化:从json串变成python的字典(最常用)

    三、模块功能

    3.1 经常使用

    dic = {'a':1,'b':2,'c':None,'d':'abc'}
    data =json.dumps(dic)  #序列化到内存中
    print(data,type(data))  #单引号会全部变成双引号,顺便打印一下他的数据类型
    data = json.loads(data)   #从内存中获取json串
    print(data,type(data))  #双引号会全部变成单引号,顺
    #
    with open('test.json','w',encoding='utf8') as fw:
        json.dump(dic,fw)
    
    with open(f'{"test"}.json','r',encoding='utf8') as fr:
        data = json.load(fr)
        print(data)
    -----------------------------------------------------------
    {"a": 1, "b": 2, "c": null, "d": "abc"} <class 'str'>
    {'a': 1, 'b': 2, 'c': None, 'd': 'abc'} <class 'dict'>
    {'a': 1, 'b': 2, 'c': None, 'd': 'abc'}
    

    json数据类型和python数据类型对应关系

    Json类型 Python类型
    {} dict
    [] list
    "string" str
    520.13 int或float
    true/false True/False
    null None

    pickle模块

    一、导入方式

    import  pickle
    

    二、作用

    可以序列化python中所有对象(数据类型),但是无法跨平台

    三、模块功能

    3.1 经常使用

    data = {'a': 1, 'b': 'abc', 'age': 18}
    print(data,type(data))
    ----------------------------------------------------------
    {'a': 1, 'b': 'abc', 'age': 18} <class 'dict'>
    
    data = {'a': 1, 'b': 'abc', 'age': 18}
    data = pickle.dumps(data)
    print(data,type(data))
    --------------------------------------------------------------
    b'x80x03}qx00(Xx01x00x00x00aqx01Kx01Xx01x00x00x00bqx02Xx03x00x00x00abcqx03Xx03x00x00x00ageqx04Kx12u.' <class 'bytes'>
    
    data = pickle.loads(data)
    print(data,type(data))
    -------------------------------------------------------------
    {'a': 1, 'b': 'abc', 'age': 18} <class 'dict'>
    
    import pickle
    
    def func():
        print(1234234)   #这个函数必须要定义,不然会报错
    
    #序列化
    with open('test.pkl','wb') as fw:
        pickle.dump(func,fw)  # 保存的只是一个函数名,以二进制的形式保存
    #反序列化
    with open('test.pkl','rb') as fr:
        data = pickle.load(fr)  # func必须存在
        data()
    
    # 对函数而言毫无意义,一般用在面向对象
    
  • 相关阅读:
    第六周作业
    2019第四周作业(基础作业+挑战作业)
    第三周作业
    2019第二周基础作业
    求最大值及下标值
    查找整数
    学期总结
    打印沙漏
    币值转换
    远程连接centos7的mysql5.7+ 更改iptables方法
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11366328.html
Copyright © 2020-2023  润新知