ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第二十天序列化模块和模块的调用:

2020-02-21 20:54:54  阅读:168  来源: 互联网

标签:调用 dic x00 json tm 模块 import 序列化 pickle


1.序列化模块指的就是把其他的数据类型转换成字符串数据类型;序列化的数据类型必须是有序的,主要方法有三种:json、pickle、shelve

2为啥要用序列化模块:1.写文件时只能写入字符串文件,在文件的传输时,只能传输bytes类型。

3.从其他数据类型到字符串叫做序列化,反之叫做反序列化。

4.json 成为程序语言界通用的语言:所使用的数据类型主要是:整型、字符串、列表、元组(要把元组转换成列表在进行计算)

  4.1json dumps序列化方法,loads反序列化方法:

import json
dic={'k1':'v1','k2':'v2'}
print(type(dic),dic)
ret=json.dumps(dic)
print(ret,type(ret))
结果
<class 'dict'> {'k1': 'v1', 'k2': 'v2'}
{"k1": "v1", "k2": "v2"} <class 'str'>
View Code 
ret1=json.loads(ret)
print(ret1,type(ret1))
结果为
{'k1': 'v1', 'k2': 'v2'} <class 'dict'>
View Code

  4.2dump和load操作:对文件操作时进行的修改:

import json
dic={1:'a',2:'b'}
f=open('fff','w',encoding='utf-8')
json.dump(dic,f)
f.close()
f=open('fff')
res=json.load(f)
f.close()
print(res)
结果为
{'1': 'a', '2': 'b'}
View Code

  4.3dump和load操作时要先全部写入,然后再全部读取:会占据很大内存;

import json
dic={1:'中国',2:'高工'}
f=open('fff','w',encoding='utf-8')
json.dump(dic,f)
View Code

 

 

   改变这种:

import json
dic={1:'中国',2:'高工'}
f=open('fff','w',encoding='utf-8')
json.dump(dic,f,ensure_ascii=False)
View Code

 

import json
l=[{'k1':'111'},{'k2':'222'},{'k3':'111'}]
f=open('file','w')
import json
for dic in l:
    str_dic=json.dumps(dic)
    f.write(str_dic+'\n')
f.close()
结果为
View Code

 

 

import json
f=open('file','r',encoding='utf-8')
l=[]
for line in f:
    l.append(dic)
f.close()
print(l)
View Code

  5.pickle是将所有的python数据类型转换成字符串数据类型。pickle序列化只有python能理解,且部分反序列依赖pyton代码。

import pickle
dic={'k1':'v1','k2':'v3','k3':'v3'}
str_dic=pickle.dumps(dic)
print(str_dic)
dic2=pickle.loads(str_dic)
print(dic2)
结果为
b'\x80\x03}q\x00(X\x02\x00\x00\x00k1q\x01X\x02\x00\x00\x00v1q\x02X\x02\x00\x00\x00k2q\x03X\x02\x00\x00\x00v3q\x04X\x02\x00\x00\x00k3q\x05h\x04u.'
{'k1': 'v1', 'k2': 'v3', 'k3': 'v3'}
View Code

  5.5

import time
import pickle
struct_time1=time.localtime(1000000000)
struct_time2=time.localtime(000000000)
f=open('pickle_file','wb')
pickle.dump(struct_time1,f)
pickle.dump(struct_time2,f)
f.close()
f=open('pickle_file','rb')
ret1=pickle.load(f)
ret2=pickle.load(f)
print(ret1,ret2)
f.close()
结果为
time.struct_time(tm_year=2001, tm_mon=9, tm_mday=9, tm_hour=9, tm_min=46, tm_sec=40, tm_wday=6, tm_yday=252, tm_isdst=0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
View Code

 

标签:调用,dic,x00,json,tm,模块,import,序列化,pickle
来源: https://www.cnblogs.com/ab461087603/p/12342995.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有