代码编织梦想

1.JSON(JavaScript Object Notation)格式

import json
data = [{'a':1, 'b':2, 'c':3, 'd':4, 'e':5}]
print(data)
print(type(data))

在这里插入图片描述

data_dumps = json.dumps(data) #把python对象编码成json字符串
print(data_dumps)
print(type(data_dumps))

在这里插入图片描述

f = open('data.json', 'w')
f.write(data_dumps)
f.close()
f = open('data.json', 'r')
data = f.readlines()
print(type(data[0])) #data是一个字符串
json_loads = json.loads(data[0]) #将json字符串解码为python对象
print(type(json_loads))
print(json_loads)

在这里插入图片描述

2.pickle模块

pickle 提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。pickle 模块只能在 Python 中使用,Python 中几乎所有的数据类型(列表、字典、集合、类等)都可以用 pickle 来序列化。pickle 序列化后的数据,可读性差,一般无法识别。

import pickle
data = [{'a':1, 'b':2, 'c':3, 'd':4, 'e':5}]

with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)
    
#pickle.dump(obj, file[, protocol]):序列化对象,并将结果数据流写入到文件对象中。参数 protocol 是序列化模式,默认值为0,表示以文本的形式序列化。protocol 的值还可以是1或2,表示以二进制的形式序列化。

with open('data.pkl', 'rb') as f:
    model = pickle.load(f)
    
#pickle.load(file):反序列化对象。将文件中的数据解析为一个 Python 对象。
    

3.sklearn中的joblib模块

from sklearn.externals import joblib
joblib.dumb(model, model_path) #模型保存 joblib.load(model_path) #模型加载

Flask和Bottle微服务框架

1.Bottle Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅只有一个文件的 Python 模块,并且除 Python 标准库外,它不依赖于任何第三方模块。

Bottle 本身主要包含以下四个模块,依靠它们便可快速开发微 Web 服务:

路由(Routing):将请求映射到函数,可以创建十分优雅的 URL; 模板(Templates):可以快速构建 Python
内置模板引擎,同时还支持 Mako、Jinja2、Cheetah 等第三方模板引擎; 工具集(Utilites):用于快速读取 form
数据,上传文件,访问 Cookies,Headers 或者其它 HTTP 相关的 metadata; 服务器(Server):内置 HTTP
开发服务器,并且支持 paste、fapws3、 bjoern、Google App Engine、Cherrypy 或者其它任何 WSGI
HTTP 服务器。

2.Flask Flask 也是一个 Python 编写的 Web 微框架,可以让我们使用 Python 语言快速实现一个网站或 Web 服务。并使用方式和 Bottle 相似,Flask 依赖 Jinja2 模板和 Werkzeug WSGI 服务。Werkzeug 本质是
Socket 服务端,其用于接收 HTTP 请求并对请求进行预处理,然后触发 Flask 框架,开发人员基于 Flask
框架提供的功能对请求进行相应的处理,并返回给用户,如果返回给用户的内容比较复杂时,需要借助 Jinja2
模板来实现对模板的处理,即将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

Bottle 和 Flask 在使用上相似,而且 Flask 的文档资料更全,发布的服务更稳定,因此下面重点以 Flask
为例,来说明模型的微服务发布过程。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_word():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

在这里插入图片描述

修改服务对应的 IP 地址和端口

#app.run(host='192.168.31.19',port=8088)
# joblib.dump(model,"C://Users//18703//Desktop//model.pkl") 
    from sklearn.externals import joblib
    import pandas as pd
    model_path = "C://Users//18703//Desktop//classification.pkl"
    model = joblib.load(model_path)
    sen =[[5.1, 3.5, 1.4, 0.2]]
    print(sen)
    print(model.predict(sen))

在这里插入图片描述

#模型和浏览器进行交互
from sklearn.externals import joblib
from flask import Flask,request
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/predict/<sen>') #增加预测接口,重新定义predict函数
def predict(sen):
    result = model.predict(sen)
    return str(result)

if __name__ == '__main__':
    model_path = "C://Users//18703//Desktop//classification.pkl"
    model = joblib.load(model_path) #启动之前先把模型加载到内存中
    app.run(host='127.0.0.1')

在这里插入图片描述

predict([[5.1, 3.5, 1.4, 0.2]])

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/rubyw/article/details/130830125

jetson 套件使用vs-code远程操作经验分享-爱代码爱编程

远程操作Jetson Nano时,笔者一开始使用FinalShell这个便利的SSH工具,并搭配Nomachine图形界面软件。在前期的单纯学习与简易开发时还能游刃有余,但随着复杂度的提升,不仅需要在几个关联文件中进行交叉修改,可能还需要查看图像/视频这类的输出结果,必须在几个视窗之间不断切换,于是这些工具组合就显得捉襟见肘。 FinalShell是一款

youcompleteme(ycm)安装-爱代码爱编程

vim在各个linux版本中是个比较好编辑器,反正nano我是用不惯。但这个ycm的安装也是不断的在变,现在的安装比之前要简单的多,基本个几命令就搞定了,而且 也不用关心系统里有没有vim,ycm已经可以自动安装。具体安装步骤如下:(截止目前:2023年5月18日好用的方法) 一、安装必须程序 apt-get install git make which

cuda编程学习——第一个cuda程序!干货向(一)-爱代码爱编程

前言: 最近在做三维重建,尤其是Nerf方面多视角合成工作的时候,意识到了cuda的编程计算可以大大提高其中渲染的计算,最明显的例子是Instant-ngp,Plenoxels等文章,因此后面会学Cuda一段时间,同时也就

【学习日记】在不可联网电脑上安装python和深度学习环境-爱代码爱编程

测试环境 Hyer-V上开了个虚拟机,win7-64位企业版,全新未安装任何环境的最基本的操作系统。 因为不联网安装,而且是win7这种古老的操作系统,确实会遇到很多问题。做个记录。 可能需要用到的补丁和dll 我已经

python lambda表达式表达式详解及应用-爱代码爱编程

目录 Python Lambda表达式的优势 Lambda表达式用法 1. 当作参数传递 2. 使用Lambda表达式过滤列表 3. 使用Lambda表达式计算数学表达式 4. 使用Lambda表达式作为返回值 5. 实现匿名回调函数 Lambda表达式注意事项 总结 Lambda表达式是Python中的一种匿名函数,它可以在一

python 操作符-爱代码爱编程

Python提供了各种操作符用于执行不同类型的操作,例如算术操作、比较操作、逻辑操作等。下面是Python中常见的操作符: 1. 算术操作符:    - `+`:加法    - `-`:减法    - `*`:乘法    - `/`:除法    - `%`:取模(求余数)    - `**`:幂运算    - `//`:取整除(向下取整) 2. 比较操

黑客如何从零学起?-爱代码爱编程

一、MYSQL5.7 MySQL是如今使用最多的数据库,是众多企业的首选,在未来几年都将被持续推动发展。 学习MySQL需注重实战操作,循序渐进地了解MySQL中的各项技术,这样才能在实际工作中的关键应用。 想进入网络安全行业, MySQL5.7的学习需要掌握如下知识点: 数据库的创建和删除数据表的基本操作运算符的使用MySQL函数的使用数据表查询

一个月内面了30家公司,薪资从18k变成28k,真行啊····-爱代码爱编程

工作3年,换了好几份工作(行业流行性大),每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心,而且特别不喜欢请假面试,对自己负责也对公司负责。 但是这次没想到市场环境非常不好,一直从春天熬到了秋天,不知不觉4个月过去了。之所以时间这么长,很大部分原因是我希望下份工作是一份稳定的工作,可以让自己好好沉淀,所以必须要满意!包括工作内容+工作薪水!

干外包3年,彻底寄了...-爱代码爱编程

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了6年的功能测试,已经让我变得不思进取,

已解决python使用pymysql向mysql数据库插入数据报错pymysql.err.dataerror: (1366, ‘‘)-爱代码爱编程

已解决,在python代码是使用pymysql向mysql数据库插入数据时报错pymysql.err.DataError: (1366, '') 问题描述  我从某个网页上抓取并解析了一段html代码,然后将html代码转为utf-8格式,之后将html代码作为数据表的一个属性存入mysql数据库中: selector = etree.HT

爬虫为什么会使用到代理ip?-爱代码爱编程

爬虫使用代理IP的主要目的是为了隐藏自己的真实IP地址,以避免被目标网站封禁或限制访问。如果一个爬虫频繁地向一个网站发送请求,而且每次请求的IP地址都相同,那么这个网站就有可能认为这是一种恶意行为,从而采取封禁或限制访问的措

进程和编码-爱代码爱编程

一、python代码的运行方式 1.脚本式 2. 交互式 一般用于代码的测试 二、进制及相互之间的转换 1. 进制 2.进制之间相互转换 在python中,十进制是以整形的形式存在,其他进制是已字符串的形式

django数据库单元测试报错:django.test.testcases.databaseoperationforbidden:_django.test.testcases.databaseoperationforbidden: -爱代码爱编程

问题:django工程内,编写UT对ORM操作方法进行测试。但运行报错: django.test.testcases.DatabaseOperationForbidden: Database queries to 'db_name' are not allowed in this test. Add 'db_name' to xxx.tests.t

python通过natcap.invest库调用invest模型批处理数据(carbon storage and sequestration模块)_invest模型python接口-爱代码爱编程

InVEST(Integrated Valuation of Ecosystem Servicesand Tradeoffs)生态系统服务和权衡的综合评估模型,旨在通过模拟不同土地覆被情景下生态系统物质量和价值量的变化

利用列表推导式遍历子目录pdf文件-爱代码爱编程

一、问题的提出 之前,我们探索了如何用Python来遍历子目录文件,可以采用pathlib,os等来实现,可谓是无法八门,但是上面提到的方法用到的代码还是有点儿多,于是,我考虑如何用列表推导式来减少代码,使程序运行的速度更快。 二、列表推导式遍历子目录 目标:遍历当前目录及子目录下所有的pdf文件,包括后缀是.PDF的文件方法:我们尝试了以下几种方法

基于arima-爱代码爱编程

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文目录如下:🎁🎁🎁 目录 💥1 概述 1.1 ARIMA模型 1.2 LSTM神经网络 📚2 运行结果 ​ 🎉3 参考文

小蝌蚪找妈妈:python之作用域链与 legb 原则-爱代码爱编程

文章目录 参考描述作用域对象全局作用域globals() 局部作用域locals() 包含作用域内置作用域builtins 模块builtins 模块与 \_\_bu