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'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02X\x03\x00\x00\x00abcq\x03X\x03\x00\x00\x00ageq\x04K\x12u.' <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() # 对函数而言毫无意义,一般用在面向对象

sys模块&json模块&pickle模块的更多相关文章

  1. os模块,sys模块,json和pickle模块,logging模块

    目录 OS模块 sys模块 json和pickle模块 序列化和反序列化 json模块 pickle logging模块 OS模块 能与操作系统交互,控制文件 / 文件夹 # 创建文件夹 import ...

  2. 模块讲解---os模块,sys模块,json和pickle模块,logging模块

    目录 模块的用法 os模块 常用的功能 sys模块 常用的功能 json和pickle模块 4. logging模块 模块的用法 通过 import 或者from......import...... ...

  3. python-时间模块,random、os、sys、shutil、json和pickle模块

    一.time与datetime模块 time模块: 时间戳:表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,返回类型为float类型 格式化时间字符串(Format String) ...

  4. python模块(json和pickle模块)

    json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...

  5. Python json和pickle模块

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...

  6. 包--json 与 pickle 模块

    一. 包 一个含有__init__.py 文件的文件夹(将py 文件中的内容划分成不同的部分放在不同的py 文件中,在将这些py 文件放在一个文件夹中) 是模块,不做执行文件,仅做调用 m1.py 和 ...

  7. Python之时间模块、random模块、json与pickle模块

    一.时间模块 1.常用时间模块 import time # 时间分为三种格式 #1.时间戳---------------------以秒计算 # start= time.time() # time.s ...

  8. python常用模块之json、pickle模块

    python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...

  9. 常用模块一(os模块、序列化模块(json和pickle))

    一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...

  10. 序列化的两个模块(json和pickle)

    到底什么是序列化(picking)呢? 我们把变量从内存中变成可存储或传输的过程称之为序列化 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对 ...

随机推荐

  1. liunx系统中安装lua以及torch

    一直在用pytorch,最近在做项目的时候,遇到了torch的开源代码,所以又开始不得不接触torch以及他所依赖的环境lua. liunx下lua环境的配置代码如下: ''' curl -R -O ...

  2. 10.Python内置函数一览表

    为了提高程序员的开发效率,Python 提供了很多可以直接拿来用的函数(初学者可以先理解为方法),每个函数都可以帮助程序员实现某些具体的功能. 举个例子,在 Python 2.x 中 print 只是 ...

  3. vue中使用iconfont和在旧有的iconfont中添加新的图标

    todo 使用参考:https://blog.csdn.net/qq_34802010/article/details/81451278 大体步骤是正确的,具体可参考官方文档和下载下来的代码中的dem ...

  4. dataX调优

    dataX调优 标签(空格分隔): ETL 一,Datax调优方向 DataX调优要分成几个部分(注:此处任务机指运行Datax任务所在的机器). 1,网络本身的带宽等硬件因素造成的影响: 2,Dat ...

  5. SpringMVC的 transferTo使用

    在开发Web应用程序时比较常见的功能之一,就是允许用户利用multipart请求将本地文件上传到服务器,而这正是Grails的坚固基石——SpringMVC其中的一个优势.Spring通过对Servl ...

  6. JSON格式标准

    JSON格式 json的基本类型有objects(dicts), arrays(lists), strings, numbers, booleans, and nulls(json中关键字).在一个o ...

  7. 关于慕课网《使用vue2.0实现购物车和地址选配功能》的总结

    视频学习网址:http://www.imooc.com/learn/796 源码打包:https://codeload.github.com/fachaoshao/Vue-ShoppingCart/z ...

  8. 【java多线程】volatile 关键字

    在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言是支持多线程的,为了解决线程并发的问题,在语 ...

  9. Linux高级调试与优化——内存泄漏实战分析

    最近在整理Linux调试方面的文档,正好碰到了一个内存泄漏踩栈的问题,借此机会记录一下分析过程. 首先,发现问题之后,赶紧看一下产生coredump文件没有,果不其然,产生了coredump,果断上g ...

  10. 浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Event 对象

    ylbtech-浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Event 对象 1.返回顶部 1. HTML DOM Event 对象 实例 哪个鼠标按钮被点击 ...