序列化

Python基础(序列化)

╄→尐↘猪︶ㄣ 提交于 2020-04-03 02:57:25
#pickling import pickle,json # d = dict(name='傻狗1',age=300,score=100) # d1 = pickle.dumps(d)#pickle.dumps()方法把任意对象序列化成一个bytes,然后,就可以把这个bytes写入文件 # print(d1)#b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x07\x00\x00\x00\xe5\x82\xbb\xe7\x8b\x971q\x02X\x03\x00\x00\x00ageq\x03M,\x01X\x05\x00\x00\x00scoreq\x04Kdu.' # with open('./dump.txt','wb') as f: # pickle.dump(d,f)#用另一个方法pickle.dump()直接把对象序列化后写入一个file-like Object # with open('./dump.txt','rb') as f: # d = pickle.load(f)#用pickle.load()方法从一个file-like Object中直接反序列化出对象 # print(d)#{'name': '傻狗1', 'age': 300, 'score': 100} #JSON #python对象转JSON #

drf框架 ModelSerializer

这一生的挚爱 提交于 2020-04-03 01:40:29
ModelSerializer 一、准备 配置settings.py INSTALLED_APPS = [ # ... 'rest_framework', ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dg_proj', 'USER': 'root', 'PASSWORD': '123', } } """ 任何__init__文件 import pymysql pymysql.install_as_MySQLdb() """ LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 路由 # 主 from django.conf.urls import url, include from django.contrib import admin from django.views.static import serve from django.conf import settings urlpatterns

python基础之模块 序列化

巧了我就是萌 提交于 2020-04-02 23:39:07
什么是序列化(picking)?  我们把变量从内存中变成可存储或传输的过程称之为序列化。  序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。  反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 ---如何序列化?   在python中提供了两个模块可进行序列化。分别是pickle和json。 pickle   pickle是python中独有的序列化模块,所谓独有,就是指不能和其他编程语言的序列化进行交互,因为pickle将数据对象转化为bytes >>> import pickle >>> d=[1,2,3,4] >>> pickle.dumps(d) b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.' >>> type(pickle.dumps(d)) <class 'bytes'> #类型为bytes pickle模块提供了四个功能:dumps、dump、loads、load。   dumps和dump都是进行序列化,而loads和load则是反序列化。 >>> import pickle >>> d=[1,2,3,4] >>> pickle.dumps(d) b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'

python基础之模块之序列化

喜夏-厌秋 提交于 2020-04-02 23:37:07
---什么是序列化(picking)?  我们把变量从内存中变成可存储或传输的过程称之为序列化。  序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。  反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。  举例:大家应该都玩过魔兽争霸,应该知道该游戏有一个存档的功能,我每次不想玩得时候就可以存档,然后再玩得时候我们根本不需要重新开始玩,只需要读档就可以了。我们现在学习的事面向对象的思想,那么在我们眼中不管是我们的游戏角色还是游戏中的怪物、装备等等都可以看成是 一个个的对象,进行简单的分析。 角色对象(包含等级、性别、经验值、HP、MP等等属性) 武器对象(包含武器的类型、武器的伤害、武器附加的能力值等等属性) 怪物对象(包含等级、经验值、攻击、怪物类型等等) 于是玩游戏过程变的非常有意思了,创建游戏角色就好像是创建了一个角色对象,拿到武器就好像创建了一个武器对象,遇到的怪物、NPC等等都是对象了。 然后再用学 过的知识进行分析,我们发现对象的数据都是保存在内存中的,应该都知道内存的数据在断电以后是会消失的,但是我们的游戏经过存档以后,就算你关机了几天, 再进入游戏的时候,读取你的存档发现你在游戏中的一切都还在呢,奇怪了,明明内存中的数据已经没有了啊,这是为什么呢?于是再仔细考虑,电脑中有硬盘这个

I/O流——其他流

蹲街弑〆低调 提交于 2020-04-02 21:30:26
其他流 一、ObjectInputStream/ObjectOutputStream ① ObjectInputStream和ObjectOutputStream分别与FileInputStream和FileOutputStream一起使用时,可以对应用程序提供对对象的持久存储。我们把对象以某种特定的编码格式写入称之为“序列化”。把写入的编码格式内容还原成对象称之为“反序列化”。 ② 被序列化的对象必须实现Serializable接口。 序列化示例: 1 //必须实现Serializable接口 2 class Student implements Serializable{ 3 private String name; 4 private int age; 5 public Student(String name, int age) { 6 super(); 7 this.name = name; 8 this.age = age; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name = name; 15 } 16 public int getAge() { 17 return age; 18 } 19 public

java基础---->Serializable借口

瘦欲@ 提交于 2020-04-02 15:04:44
一、对象序列化的作用 Object serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。 在Java语言中允许使用java.io.Serializable接口将类标志为可序列化,从而可以将该类的对象通过I/O传递(如:通过网络传递)或者将对象写入到文件系统中。然而在java.io.Serializable中并没有定义任何的操作。那么Serializable接口究竟起到什么样的作用呢? Java语言为程序开发者提供了许多的安全检查,从而保证java程序在语言级别以及运行环境上的稳定、可靠,从而使开发人员能把主要经历集中在软件设计上。然而, 一个功能相对复杂的软件大都会应用到网络传输或者本地数据的持久化(将对象写到文件中),而这些操作都在一定程度上破坏了JAVA程序的安全性 ,因为网络传输与文件系统都是不受控的环境,在这样的环境中,用户的数据很容易就遭到攻击或者破坏。比如:改写或者破坏本地文件系统简直是轻而易举的事情。 在保障JAVA程序的安全又要保证程序功能与用户需求的情况下,需要介入一部分人为因素,来保证程序的安全 。 Serializable接口的使用其实是在程序开发人员或者设计者在做开发和设计的时候对JAVA运行环境的一种声明

JS原生实现表单序列化

岁酱吖の 提交于 2020-04-01 14:12:05
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单序列化</title> </head> <body> <fieldset> <legend>表单</legend> <form> <div> MM:<input type="radio" name="name" value="mm"></br> GG:<input type="radio" name="name" value="gg"></br> </div> <div> ping<input type="checkbox" name="ping" value="ping"> pang<input type="checkbox" name="pang" value="pang"> qi<input type="checkbox" name="qiu" value="qiu"></br> </div> <div> <textarea rows="8" cols="15"></textarea></br> </div> <div> <select name="fruits"> <option value="apple">apple</option> <option value="orange">orange</option> <option

序列化模块

强颜欢笑 提交于 2020-04-01 06:04:21
目录 序列化模块 1 序列化&反序列化的定义 2、序列化的作用 3 序列化与反序列化的方法 3.1 json方法 3.2 pickle方法 4 猴子补丁 序列化模块 1 序列化&反序列化的定义 内存中的数据类型---->序列化---->特定的格式(json格式或者pickle格式) 内存中的数据类型<----反序列化<----特定的格式(json格式或者pickle格式) 土办法: {'aaa':111}--->序列化str({'aaa':111})----->"{'aaa':111}" {'aaa':111}<---反序列化eval("{'aaa':111}")<-----"{'aaa':111}" 2、序列化的作用 序列化得到结果=>特定的格式的内容有两种用途 1 可用于存储=>用于存档 2 传输给其他平台使用=>跨平台数据交互 ​ python java ​ 列表 特定的格式 数组 强调: 针对用途1的特定一格式:是一种专用的格式=>pickle只有python可以识别 针对用途2的特定一格式:是一种通用、能够被所有语言识别的格式=>json 3 序列化与反序列化的方法 3.1 json方法 # 示范1 import json # 序列化 json_res=json.dumps([1,'aaa',True,False]) print(json_res,type(json

对象流与对象序列化

混江龙づ霸主 提交于 2020-04-01 02:57:18
对象的序列化过程& 反序列化过程 TestObjectInputOutputStream package com.aff.file; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import org.junit.Test; /* 对象的序列化 1. 对象的序列化机制允许内存中的 Java 对象转换成平台无关的二进制流, 从而允许这种二进制流持久的保存在磁盘上或通过网络将这种二进制流传输到另一个网络节点, 当其他程序获取这种二进制流,就可以恢复成原来的 Java 对象。 2. 序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据, 使其在保存和传输时可被还原 3. 序列化是 RMI(Remote Method Invoke – 远程方法调用)过程的参数和返回值都必须实现的机制, 而 RMI 是 JavaEE 的基础。因此序列化机制是 JavaEE 平台的基础 4. 如果需要让某个对象支持序列化机制,则必须让其类是可序列化的,

23---常用模块2

我是研究僧i 提交于 2020-03-31 20:39:50
一 json&pickle模块 1 什么是序列化和反序列化 序列化指的是把内存的数据类型转换成一种特定的格式的内容,该格式的内容可用于存储或者传输给其他平台使用 序列化: 内存中的数据类型----》序列化----》特定的格式(json/pickle格式) 反序列化: 内存中的数据类型《----反序列化《----特定的格式(json/pickle格式) 2 为什么要用 序列化得到结果==》特定格式的内容有两种用途 1 可用于存储====》用于存档(自己的程序使用) 2 传输给其他平台使用====》跨平台数据交互(两种语言共有的数据类型)(给其他语言的程序使用) python列表----特定格式----java数组 强调: 针对用途1的特定一种格式:可以是一种专用的格式===》pickle只有python可以识别 针对用途2的特定一种格式:应该是一种通用能够被所有语言识别的格式====》json 3 如何用序列化和反序列化 1 json模块 # 序列化 import json res = json.dumps([1,2,3,4,True,False]) print('序列化结果',res) # 'true'---字符串类型 # 序列化结果可以存在文件中:复杂方法 with open('json.txt', 'w', encoding='utf-8') as f: f.write(res