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'\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模块的更多相关文章
- os模块,sys模块,json和pickle模块,logging模块
目录 OS模块 sys模块 json和pickle模块 序列化和反序列化 json模块 pickle logging模块 OS模块 能与操作系统交互,控制文件 / 文件夹 # 创建文件夹 import ...
- 模块讲解---os模块,sys模块,json和pickle模块,logging模块
目录 模块的用法 os模块 常用的功能 sys模块 常用的功能 json和pickle模块 4. logging模块 模块的用法 通过 import 或者from......import...... ...
- python-时间模块,random、os、sys、shutil、json和pickle模块
一.time与datetime模块 time模块: 时间戳:表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,返回类型为float类型 格式化时间字符串(Format String) ...
- python模块(json和pickle模块)
json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...
- Python json和pickle模块
用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...
- 包--json 与 pickle 模块
一. 包 一个含有__init__.py 文件的文件夹(将py 文件中的内容划分成不同的部分放在不同的py 文件中,在将这些py 文件放在一个文件夹中) 是模块,不做执行文件,仅做调用 m1.py 和 ...
- Python之时间模块、random模块、json与pickle模块
一.时间模块 1.常用时间模块 import time # 时间分为三种格式 #1.时间戳---------------------以秒计算 # start= time.time() # time.s ...
- python常用模块之json、pickle模块
python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...
- 常用模块一(os模块、序列化模块(json和pickle))
一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...
- 序列化的两个模块(json和pickle)
到底什么是序列化(picking)呢? 我们把变量从内存中变成可存储或传输的过程称之为序列化 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对 ...
随机推荐
- 【清华集训2016】Alice和Bob又在玩游戏
不难的题目.因为SG性质,所以只需要对一棵树求出. 然后如果发现从上往下DP不太行,所以从下往上DP. 考虑一个点对子树的合并,考虑下一个删的点在哪一个子树,那么剩下的状态实际上就是把一个子树所有能达 ...
- sklearn pca降维
PCA降维 一.原理 这篇文章总结的不错PCA的数学原理. PCA主成分分析是将原始数据以线性形式映射到维度互不相关的子空间.主要就是寻找方差最大的不相关维度.数据的最大方差给出了数据的最重要信息. ...
- AtCoder AGC037D Sorting a Grid (二分图匹配)
题目链接 https://atcoder.jp/contests/agc037/tasks/agc037_d 题解 这场D题终于不像AGC032D和AGC036D一样神仙了-- 还是可做的吧 虽然考场 ...
- 使用单调队列维护决策三元组实现决策单调性优化DP的一些细节
以[BZOJ2687]交与并为例给出代码. #include <bits/stdc++.h> #define rin(i,a,b) for(register int i=(a);i< ...
- Spring Boot教程(二十九)使用JdbcTemplate操作数据库
使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...
- Kotlin学习入门笔记
参考资料 官网:https://kotlinlang.org/ 官方文档:https://kotlinlang.org/docs/reference/ Kotlin 源码:https://github ...
- __doPostBack function
__doPostBack function Hi everyone. Today I am going to talk about the __doPostBack function, because ...
- TODO: Java虚拟机 初始化过程
Java虚拟机 初始化过程: 参考: https://www.cnblogs.com/bhlsheji/p/4017816.html 参考:https://blog.csdn.net/boling_c ...
- DateTimePicker 日期时间选择器
在同一个选择器里选择日期和时间 DateTimePicker 由 DatePicker 和 TimePicker 派生,Picker Options 或者其他选项可以参照 DatePicker 和 T ...
- web.py下获取get参数
比较简单,就直接上代码了: import web urls = ( '/', 'hello' ) app = web.application(urls, globals()) class hello: ...