用于序列化的模块

  • json,通用的序列化方式,序列化成为str类型,支持所有语言识别,序列化的数据具有局限性。
  • pickle,python的所有数据类型都可以被序列化,序列化为bites格式,只适用于python之间的数据交互。

json和pickle都支持四个功能:load,loads,dump,dumps.

可以根据下面的代码来看四个功能到底如何实现:

# Author:Zhang Zhao
#json序列化实现
import json
data = {'name':'zhangzhao','age':18}
with open('zz.text','w') as f:
f.write(json.dumps(data))# 等价于json.dump(data,f)
#将data内的数据序列化成为str类型,然后写到zz.text里面
# Author:Zhang Zhao
#json反序列化实现
import json
with open('zz.text','r') as f:
data = json.loads(f.read())# 等价于json.load(f)
#将zz.text里json序列化的数据转换成为原来的字典数据类型。 print(data,type(data)) {'name': 'zhangzhao', 'age': 18} <class 'dict'>

下面是利用json序列化实现简单的用户注册,实现用户登录,并且当输入次数大于三次时便会锁定。(本来输入密码想用getpass,但不知为何pycharm里执行getpass有点问题。。。)

可以参考Alex的博客学习python数据类型。

# Author:Zhang Zhao
import getpass, json with open('data.text', 'r') as f:
# data = eval(json.load(f))
data = json.loads(f.read())
choice = input('注册还是登录:').strip()
count = 0
while True:
if choice == '注册':
username = input('请输入用户名:')
if username.strip() in data:
print('用户名已存在,请换一个')
else:
pwd = input('请输入密码:')
data[username] = pwd
print('注册成功')
with open('data.text', 'w') as f:
f.write(json.dumps(data))
break
elif choice == '登录':
username = input('请输入用户名:')
pwd = input('请输入密码:')
if pwd == data.get(username):
print('验证成功')
break
else:
print('用户名或密码错误')
count += 1
if count > 3:
print('输入错误次数太多,滚')
break
else:
break

json&pickle数据序列化模块的更多相关文章

  1. Python-Day4 Python基础进阶之生成器/迭代器/装饰器/Json & pickle 数据序列化

    一.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面 ...

  2. 迭代器/生成器/装饰器 /Json & pickle 数据序列化

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  3. python基础6之迭代器&生成器、json&pickle数据序列化

    内容概要: 一.生成器 二.迭代器 三.json&pickle数据序列化 一.生成器generator 在学习生成器之前我们先了解下列表生成式,现在生产一个这样的列表[0,2,4,6,8,10 ...

  4. Python之路-python(装饰器、生成器、迭代器、Json & pickle 数据序列化、软件目录结构规范)

    装饰器: 首先来认识一下python函数, 定义:本质是函数(功能是装饰其它函数),为其它函数添加附件功能        原则:        1.不能修改被装饰的函数的源代码.        2.不 ...

  5. Json & pickle 数据序列化

    前提: 文本文件中只能写入字符串或ascii码格式的内容. info={'name':'zoe','age':18} f=open('test.txt','w') f.write(info) #在文本 ...

  6. Python3 json &pickle 数据序列化

    json 所有语言通用的信息交换格式 json.dumps()将list列表.dict字典.元组.函数等对象转换为可以存储的字符格式存入文件 json.dump(数据对象名,已以写方式打开的对象) 直 ...

  7. day04 装饰器 迭代器&生成器 Json & pickle 数据序列化 内置函数

    回顾下上次的内容 转码过程: 先decode  为 Unicode(万国码 ) 然后encode 成需要的格式     3.0 默认是Unicode  不是UTF-8 所以不需要指定  如果非要转为U ...

  8. json & pickle数据序列化

    序列化:把内存中的数据对象变成字符串 info = { 'name':'tom', 'age':22 } f = open("test.txt","w") f. ...

  9. 装饰器、生成器,迭代器、Json & pickle 数据序列化

    1. 列表生成器:代码例子 a=[i*2 for i in range(10)] print(a) 运行效果如下: D:\python35\python.exe D:/python培训/s14/day ...

随机推荐

  1. 利用PHP扩展Taint找出网站的潜在安全漏洞实践

    一.背景 笔者从接触计算机后就对网络安全一直比较感兴趣,在做PHP开发后对web安全一直比较关注,2016时无意中发现Taint这个扩展,体验之后发现确实好用:不过当时在查询相关资料时候发现关注此扩展 ...

  2. Javascript高级编程学习笔记(4)—— JS中的数据类型(2)

    接着昨天的文章,今天这篇文章主要讲述JS中剩余的两种数据类型String,和Object String类型 对于该类型,书中给出的解释为:由0或多个16为Unicode字符组成的字符序列. 对于JS中 ...

  3. linux下的初始化系统systemd简科普

    systemd是什么?名字很奇怪,不认识. 扒一扒wiki,你就会知道我是谁了? 在下有眼不识泰山,原来你就是盘古老爷爷用的开天辟地大斧头啊. 贫穷不可怕,可怕的是贫穷限制了你的想象--------- ...

  4. python之发送邮件~

    在之前的工作中,测试web界面产生的报告是自动使用python中发送邮件模块实现,在全部自动化测试完成之后,把报告自动发送给相关人员 其实在python中很好实现,一个是smtplib和mail俩个模 ...

  5. 【转】浮点数与IEEE 754

    http://www.cnblogs.com/kingwolfofsky/archive/2011/07/21/2112299.html 浮点数 1.   什么是浮点数 在计算机系统的发展过程中,曾经 ...

  6. spring cloud(服务消费者(利用feign实现服务消费及负载均衡)——初学三)

    Feign是一个声明式的Web Service客户端,我们只需要使用Feign来创建一个接口并用注解来配置它既可完成. 它具备可插拔的注解支持,包括Feign注解和JAX-RS注解.Feign也支持可 ...

  7. mysql 开发进阶篇系列 26 数据库RPM安装演示

    一.概述 上一章讲到了RPM安装后的文件目录,这章还是介绍下安装步骤.也便以后做参考吧. 1. 移出centos 7系统自带的mysql库 yum remove mysql-libs 2. 将下载的m ...

  8. 远程工作社区|远程工作|APCOW社区|AP社区

    远程工作社区|远程工作|APCOW社区|AP社区 远程工作,那是高中时代就进入我眼帘的一种生活.由于各种电影的摧残,倒是我对国外程序员的生活一直很向往.今天在纽约,下周在旧金山,过段时间又回到了自己的 ...

  9. ​​ ​​Java后端学习路线图,你真的只需要这一张!

    ​​​​ 前言 学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把. 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点.所谓不求最好,但求最全,学习Java ...

  10. jq通过对象获取其ID值,再简单ajax传到后台改值

    <tbody> <tr> <#if scopes?exists> <#list scopes as scopes> <td id='${(scop ...