Python数据库 5.json,hashlib,base64模块

5.1 json

JS对象

var teacher_1 = {    name: ‘juhao’,    age: 18,    feature : [‘高’, ‘富’,  ‘帅’]}

JSON字符串

{    “name”: “juhao”,    “age”: 18,    “ feature “ : [‘高’, ‘富’,  ‘帅’]?}

Python字典

{    ‘name’: ‘juhao’,    ‘age’: 18    ‘feature’ : [‘高’, ‘富’,  ‘帅’]?}

注意

1.字符串必须用双引号(即:””)来包括?2.值可以是字符串、数字、true、false、null、列表,或字典。
  • 1.将python数据转化为json:

    json.dumps(obj) Indent实现缩进(一般是4), json.dumps(obj,indent = 4) ensure_ascii 是否用ascii解析 ensure_ascii = False

  • 2.将json数据转换为python的数据:

    2.json.loads(s)

  • 3.转换为json并保存到文件中

    3.json.dump(obj, fp)

  • 4.从文件中读取json,并转化为python数据

    4.json.load(fp)


with open (‘json_test‘,‘w+‘)as f:    json.dump(obj,indent = 4,ensure_ascii = False,fp=f)
with open (‘json_test‘,‘r+‘)as f:    res = json.load(fp=f)    print res

5.2 hashlib,base64模块

1.hashlib (MD5)

hash算法就是-种将任意长度的数据变成一个长度固定的数据的函数

  • 1.对称加密:

    数据加密解密使用相同的密钥

  • 2.非对称加密:

    加密和解密用两把不同的密钥, 公钥用于加密数据,私钥用于解密数据

  • 3.单向加密:

    只能加密数据,而不能解密数据

2.Hash结构:

不可逆:无法根据散列值来还原原来的数据?定长输出:无论输入的原始数据有多长,结果长度是相同的?抗修改性:输入的微小改变,哪怕只有一个字符,会引起结果的巨大改变?强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能
Hashlib模块提供了许多hash算法,主要有:
1.md52.SHA系列:sha1, sha224, sha256, sha384, sha512
api 描述:
hashlib.new(name, data=b”)  生成一个hash对象hashlib.hash算法名(data=b”)    生成一个使用该算法的hash对象Hash对象.update(arg=None) 更新hash对象Hash对象.digest() 返回Hash算法计算得到的值(bytes类型)?Hash对象.hexdigest()  返回Hash算法计算得到的值(str类型) 
?    import hashlib

    result = hashlib.new(‘md5‘,‘南北‘.encode())

    result = hashlib.md5(‘南北‘.encode())

    print(result.digest())    print(result.hexdigest())

    result = hashlib.md5()    result.update(‘南北‘.encode())

    print(result.digest())    print(result.hexdigest())?

3.base64

base64是一种用64个字符来表示任意二 进制数据的方法, (将二 进制数据编码成ASCII字符)使用了A-Z,a-z,0-9,+ ,/这64个字符

特点:
用来将非ASCII字符的数据转换成ASCII字符的一种方法?常用于对URL的编码?可以将不可打印的二进制数据转化为可打印的字符串
api 描述:
base64.b64encode(s) 对二进制数据进行base64编码base64.b64decode(s) 对通过base64编码的数据进行解码?base64.urlsafe_b64encode(s) 对URL进行base64编码base64.urlsafe_b64decode(s)  解码

import base64?data = ‘爱我‘res = base64.b64encode(data.encode)

?

    import json    import base64

    data={        ‘name‘:‘nanbei‘,        ‘age‘:10,        ‘feature‘:["gao","fu","shuai"]    }

    with open(‘my_json,txt‘,‘w‘)as f:        json.dump(data,f,ensure_ascii=False)

    with open(‘my_json,txt‘,‘r‘)as f:        result=json.load(f)        print(type(result))        print(result[‘feature‘][2])

    with open(‘my_json,txt‘,‘rb‘)as f:        result=base64.b64encode(f.read())

    with open(‘my_json,txt‘,‘wb‘)as f:        f.write(result)

    with open(‘my_json,txt‘,‘rb‘)as f:        print(base64.b64decode(f.read()).decode())??

原文地址:https://www.cnblogs.com/dyf25288-/p/11701596.html

时间: 2024-10-07 13:19:08

Python数据库 5.json,hashlib,base64模块的相关文章

python序列化: json & pickle & shelve 模块

一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps.dump.loads.loadpickle模块提供了四个功能:dumps.dump.loads.load json模块:下面通过一些示例来学习:首先我们来看json的dumps和loads方法 s1={"k1":"v1"}

Python基础六--JSON, pickle模块

一.JSON 内存中的数据<--->格式json<--->字符类型<--->保存.基于网络传输 1. 将数据转化为str形式:data_str = json.dumps(data): 2. 将str形式数据转化为字典等数据:data = json.loads(data_str): 3. 注意json格式 :data = '{"name":"gangzi"}' : 二.pickle (只应用于Python,不同版本的Python彼此

Python数据库 6.datetime与logging模块

6.1 datetime模块 datetime是python处理时间和日期的标准库 类名         功能说明?date 日期对象,常用的属性有year, month, day?time 时间对象hour,minute,second,毫秒?datetime 日期时间对象,常用的属性有hour, minute, second, microsecond?timedelta 时间间隔,即两个时间点之间的长度 主要使用: datetime.datetiem( ) . datetime.timedel

Python中的base64模块

本文介绍Python 2.7中的base64模块,该模块提供了基于rfc3548的Base16, 32, 64编解码的接口.官方文档,参考这里. 该模块提供两套接口,传统接口基于rfc1521的Base64,当前接口基于rfc3548的Base16/32/64编码规范,本文只介绍当前的接口. 当前接口在Python 2.4中就被引进,关于Base64编码格式提供了以下六种接口,便于高效灵活地实现需要的编解码工作. 1. b64encode(s, altchars=None) 2. b64deco

Python的 json 、 hashlib 、 Base64 模块

json模块 简介 全称"JavaScript Object Notation" (JavaScript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式 以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象(键值对) 特点 轻量级的文本数据交换格式 易于人类阅读和编写,同时也易于机器解析和生成 Web世界当中最理想的数据交换格式 语法规则 数据由键值对组成 键值对由逗号分隔 大括号里保存对象 中括号里保存数组(Pyton中的的列表或元组) 字符串必须用双

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

Python数据对象的编码和解码,json和pickle模块,base64模块的简单使用

1.面向对象 对象:生活中的客观事物 类:对事物的抽象,在代码中实现class类型 类属性:这类事物具有的特点或者属性 类方法:这类事物具有的行为,可以实现的方法 实例:使用之前对类的实例化之后的结果 实例属性:对象具有的一些描述对象或者形容对象的属性,对象具体具有的特性 实例方法:对象具有的方法,行为动作 1.查看对象所拥有的方法 dir(对象) 例如 print(dir(列表))1.类中的实例(类)属性和方法命名风格 属性:名词 方法:动词 2.Python中万物皆对象 _对象名,对象私有化

json&amp;pickle模块、configparse/hashlib/subprocess 模块

一.json 与pickle模块 序列化: 1.什么是序列化&反序列化 内存中的数据类型---->序列化---->特定的格式(json格式或者pickle格式) 内存中的数据类型<----反序列化<----特定的格式(json格式或者pickle格式) 2.为何要序列化 序列化得到结果=>特定的格式的内容有两种用途 1.可用于存储=>用于存档 2.传输给其他平台使用=>跨平台数据交互 ? 强调: 针对用途1的特定一格式:可是一种专用的格式=>pick

python json requests request 模块

1.json 通过Python的json模块,可以将字符串形式的json数据转化为字典,也可以将Python中的字典数据转化为字符串形式的json数据. 之前使用这个模块时,都是随用随查,浅尝辄止,对模块的功能了解不深. 随着使用次数的增加,我对这个功能完善的模块有了更多的了解,记录如下. json.loads 将字符串装换成python基本数据类型 json.dumps 将python数据类型转换成字符串方式返回 json a = {:} (a,(a)) c = json.dumps(a) (