Day26笔记-Day25作业讲解对象的序列化和反序列化安装第三方库

一、对象的序列化和反序列化

Python中一切皆对象

对象的序列化:将Python中的对象持久化到磁盘上

对象的反序列化:将磁盘上一个文件中的内容转换为Python对象

注意:

​ 1.对象的序列化【写入】和反序列化【读取】通过pickle模块和json模块完成 2.Python中一切皆对象,包括类型:数字,字符串,列表,字典。元组,集合,类,函数,模块等

​ 3.pickle可以序列化一切类型,json常用于操作字典和列表

1.pickle模块
# 1.f.write():使用普通文件的写入方式,只能操作字符串
class Person():def __init__(self,name,age):self.name = nameself.age = age
per = Person("小明",10)
​
# TypeError: write() argument must be str, not list
# with open(r'data/f1.txt','w',encoding='utf-8') as f1:
#     f1.write(per)
​
# 2.对象的序列化:相当于写入
import pickle
​
'''
注意:a.pickle.dump(obj,f)进行序列化,相当于write()b.pickle.load(f)进行反序列化,相当于read()c.python对象被序列化之后,是二进制数据,所以打开文件使用wb或rb的模式
'''
with open(r'data/f1.txt','wb') as f1:pickle.dump(per,f1)
​
# 3.对象的反序列化:相当于读取
with open(r'data/f1.txt','rb') as f2:r = pickle.load(f2)print(r)  # <__main__.Person object at 0x0000018105C03D60>print(r.name,r.age)
2.json模块

JSON和Python中数据类型的对应关系JSON Python 表示object dict {}array list []

json.dump():将Python中的字典或列表对象序列化到指定的文件中json.dumps():将Python中的字典或列表对象序列化为json字符串

json.load():将指定的文件中的json字符串反序列化为Python中的字典或列表对象json.loads():将json字符串反序列化为Python中的字典或列表对象

import json
data = {"name": "中国","province": [{"name": "黑龙江","cities": {"city": ["哈尔滨", "大庆"]}}, {"name": "广东","cities": {"city": ["广州", "深圳", "珠海"]}}, {"name": "台湾","cities": {"city": ["台北", "高雄"]}}, {"name": "新疆","cities": {"city": ["乌鲁木齐"]}}]
}
print(data)
print(type(data))
​
# 1.序列化
# json.dumps():将Python中的字典或列表对象序列化为json字符串
# 注意:ensure_ascii的默认只未True,表示对中文进行编码,如果希望中文能正常显示,则可以设置ensure_ascii为False
r1 = json.dumps(data,ensure_ascii=False)
print(r1)
print(type(r1))
​
# json.dump():将Python中的字典或列表对象序列化到指定的文件中
with open(r'data/city.json','w',encoding='utf-8') as f1:json.dump(data,f1,ensure_ascii=False)
​
# 2.反序列化
# json.loads():将json字符串反序列化为Python中的字典或列表对象
r2 = json.loads(r1)
print(r2)
print(type(r2))
​
# json.load():将指定的文件中的json字符串反序列化为Python中的字典或列表对象
with open(r'data/city.json','r',encoding='utf-8') as f2:r3 = json.load(f2)print(r3)print(type(r3))

二、安装第三方库

模块,也被称为库,其实相当于是一个工具

Python中的模块/库分为三大类

​ a.系统模块,特点:只需要import导入就可以使用,如:random math string csv pickle json等

​ b.自定义模块,特点:需要自己创建py文件,在该文件自定义函数或类

​ c.第三方模块,特点:需要先安装,然后再import导入使用,如:openpyxl docx requests bs4等

import  openpyxl
​
'''
1.原生Python:比较干净的环境,其中默认只包含了pip,setuptools等Anaconda:其中包含了绝大多数的第三方库,常用的第三方库可能也已经包含在内了,但是不排除有的库不包含2.如何安装第三方库方式一:在pycharm直接添加windows:File---->Settings---->Project:xxx---->Python Intepreter---->  +【install】--->搜索----》install PackageMac:Pycharm--->Perference---->Project:xxx---->Python Intepreter---->  +【install】--->搜索----》install Package方式二:在cmd中Windows:pip  install xxxMac:pip3 install xxx方式三:Terminal【作用等同于cmd】Windows:pip  install xxxMac:pip3 install xxx
​
3.问题说明问题一:pip不是内部或外部的命令原因:没有配置环境变量解决方案:将Python或Anaconda对应的路径全部添加到环境变量中D:\software\AnacondaD:\software\Anaconda\Library\mingw-w64\binD:\software\Anaconda\Library\usr\binD:\software\Anaconda\Library\binD:\software\Anaconda\Scripts问题二:timed out原因:网络不好解决方案:切换网络  或者  切换镜像【pip  install xxx -i  镜像】国内 pip 镜像源包括但不限于以下几种:   阿里云Python镜像源:https://mirrors.aliyun.com/pypi/simple/豆瓣Python镜像源:https://pypi.douban.com/simple/清华大学Python镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学Python镜像源:http://pypi.mirrors.ustc.edu.cn/simple/华中科技大学Python镜像源:http://pypi.hustunique.com/   命令:pip install pandas -i   https://pypi.douban.com/simple/          
'''  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/150840.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

FortiOS SSL VPN 用户访问权限配置

简介 使用不同用户组或用户登录 SSL VPN 隧道模式后&#xff0c;可配置不同的访问权限。 本文介绍为不同用户组分配不同访问权限的配置方法。 相关组件 FortiGate&#xff1a;FortiOS v6.4.14 build2093 (GA) 客户端&#xff1a;Windows11&#xff0c;安装 FortiClient VPN 7.…

vscode下pnpm命令执行不了

今天使用pnpm install 报错&#xff0c;信息如下&#xff1a; 解决方法 一、安装pnpm 用cmd执行命令 npm install pnpm -g 二、用powershell 以管理员身份运行 执行命令 set-ExecutionPolicy RemoteSigned 回到vscode执行 pnpm install已经可以执行了

3D Slicer医学图像全自动AI分割组合拳-MONAIAuto3DSeg扩展

3D Slicer医学图像全自动AI分割组合拳-MONAIAuto3DSeg扩展 1 官网下载最新3D Slicer image computing platform | 3D Slicer 版本5.7 2 安装torch依赖包&#xff1a; 2.1 进入安装目录C:\Users\wangzhenlin\AppData\Local\slicer.org\Slicer 5.7.0-2024-09-21\bin&#xff0…

UE4_Niagara基础实例—使用自定义参数

实现的功能&#xff1a;使用自定义的参数来调整粒子远离发射器后粒子大小的变化 效果图&#xff1a; 操作步骤&#xff1a; 1、创建Niagara系统&#xff0c;使用Simple Sprite Burst模板作为新系统的发射器&#xff0c;更名为NS_Custompara。 2、双击打开Niagara系统编辑界面…

闰年判断-C语言

1.问题&#xff1a; 判断某一年是否是闰年。 2.解答&#xff1a; 闰年是公历中的名词&#xff0c;分为普通闰年和世纪闰年&#xff0c;普通闰年:公历年份是4的倍数的&#xff0c;且不是100的倍数&#xff0c;为普通闰年&#xff1b;世纪闰年:公历年份是整百数的&#xff0c;必…

5个被低估的Huggingface工具

Hugging Face Hub 拥有超过 85 万个公共模型&#xff0c;每月新增约 5 万个模型&#xff0c;而且这个数字似乎还在不断攀升。我们还提供企业中心订阅&#xff0c;可解锁合规性、安全性和治理功能&#xff0c;以及推理端点上的额外计算能力&#xff0c;用于生产级推理&#xff0…

Vue 自定义指令实现权限控制

一. 引言 Vue.js 提供了一种简单、灵活的方式来创建交互式的用户界面。在 Vue.js 中&#xff0c;指令是一种特殊的属性&#xff0c;可以附加到 HTML 元素上以执行一些操作。我们可以使用自定义指令来实现各种功能&#xff0c;比如&#xff1a;权限控制、自动聚焦、拖动指令等等…

网安加·百家讲坛 | 刘寅:人工智能(AI)是解决软件工程问题的“银子弹”吗?

作者简介&#xff1a;刘寅&#xff0c;东南大学电子工程系本、硕&#xff0c;南京大学EMBA&#xff0c;PMP&#xff0c;前科大讯飞技术副总经理&#xff0c;曾就职于中兴通讯、摩托罗拉、趋势科技、初速度等国内、国际名企&#xff0c;多次负责过质量体系从0到1的搭建&#xff…

【研赛A题成品论文】24华为杯数学建模研赛A题成品论文+可运行代码丨免费分享

2024华为杯研究生数学建模竞赛A题精品成品论文已出&#xff01; A题 风电场有功功率优化分配 一、问题分析 A题是一道工程建模与优化类问题&#xff0c;其目的是根据题目所给的附件数据资料分析风机主轴及塔架疲劳损伤程度&#xff0c;以及建立优化模型求解最优有功功率分配…

「JVS更新日志」智能BI、低代码、逻辑引擎9.25功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了 低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&am…

【C++掌中宝】用最少的话让你全方位理解内联函数

文章目录 引言1. 什么是内联函数2. 工作原理3. 内联函数的编程风格4. 使用限制5. 内联函数与宏的比较6. 优缺点7. 何时使用内联函数8. 补充9. 总结结语 引言 在C编程中&#xff0c;函数的调用开销是程序运行效率的一个重要影响因素。为了解决频繁调用函数时的性能问题&#xf…

人工智能助力阿尔茨海默症治疗:微软与上海精神卫生中心的新研究

最近&#xff0c;微软研究院与上海市精神卫生中心合作&#xff0c;基于微软 Azure OpenAI 服务中的多模态大模型&#xff0c;开发了一种名为“忆我”&#xff08;ReMe&#xff09;的个性化认知训练框架。这一创新项目旨在通过数字化手段扩展自动化认知训练的范围&#xff0c;为…

如何瞬间建造一个百亿商品的网上商城?借助API,无需逐个上传商品数据,自动对接电商平台百亿商品数据

在快速发展的电商时代&#xff0c;构建一个拥有百亿级商品数据的网上商城曾是许多企业遥不可及的梦想。然而&#xff0c;随着技术的不断进步&#xff0c;特别是电商平台API接口的广泛应用&#xff0c;这一梦想正逐渐变为现实。本文将详细介绍如何通过调用电商平台API接口&#…

用AI绘画年入百万?揭秘高效起始号与现变路径...

part.1 AI绘画的优势 AI绘画的魅力在于其高效和灵活 无论你是通过Midjourney还是Stable Diffusion&#xff0c;只需输入简单的提示词&#xff0c;再加上一些额外的控制调整&#xff0c;AI绘画就能快速生成各种创意内容。角色IP设计、游戏原画、3D场景甚至是天马行空的创意都…

扫雷老年版2.0无猜模式

扫雷老年版2.0无猜模式 打破记录5秒&#xff0c;到达4秒。

Skywalking告警配置

背景 skywalking 9.7.0&#xff0c;地址&#xff1a;Backend setup | Apache SkyWalking helm&#xff1a;skywalking-helm:4.5.0&#xff0c;地址&#xff1a;skywalking-helm/chart/skywalking/values.yaml at v4.5.0 首先来说一下为什么使用skywalking告警&#xff1f; …

Java转换流

转换流 是字符流和字节流之间的桥梁 转换输出流:OutputSteamWriter 转换输入流:InputStreamReader InputStreamReader输入流 package myio;import java.io.*;public class inputsteamread {public static void main(String[] args) throws IOException {InputStreamReader…

基于SSM的家政服务网站【附源码】

基于SSM的家政服务网站&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2 系统结构 4.3. 数据库设计 4.3.1 数据库实体 4.3.2 数据库设计表 4.4 数据表 第5章 系统详细设计 5.1管理员功能模块 5.2用户功能模块 5.3前…

利用低代码快速搭建电商小程序之商品列表页

目标&#xff1a; 搭建商城的一个商品列表页面&#xff08;先做静态页&#xff09; 开发环境&#xff1a; 访问白码低代码平台&#xff1a;https://www.bnocode.com/ 白码的新自定义页功能&#xff08;使用vue框架&#xff09; 前期准备&#xff1a; 需要先准备商品数据表…

LeaferJS 动画、状态、过渡、游戏框架

LeaferJS 现阶段依然专注于绘图、交互和图形编辑场景。我们引入游戏场景&#xff0c;只是希望让 LeaferJS 被更多有需要的人看到&#xff0c;以充分发挥它的价值 LeaferJS 为你带来了全新的游戏、动画、状态和过渡功能&#xff0c;助你实现那些年少时的游戏梦想。我们引入了丰富…