当前位置: 首页 > news >正文

用fastapi搭建cpca地址提取服务接口

以前的客户地址比较乱,现在想提取出省份城市,

开始了解分词技术,后发现python有这样的库

cpca提取地址挺不错,可以从垃圾地址中提取省市区以及区号。

文章会用fastapi搭建服务端

通过post调用cpca,提取来了后,返回给用户。

我的环境win7   python3.10

win7安装python3.10,前面有文章介绍,也有安装包

首先安装

pip install fastapi

正常情况下,现在可以使用fastapi了,而我比较波折

装完后写demo运行fastapi,import那就出错了

后来我不断降级

代码:

from fastapi import FastAPI
from fastapi import FastAPI, Request, Body
import uvicorn
from hashlib import md5
import cpcaapp = FastAPI()@app.get("/")
def read_root():return {"Hello": "你好"}@app.get("/bar")
async def read_item(name: str,age: int = 28):return {"name":name,"age":age}@app.post("/soso")
async def read_item(foo: int = Body(1,title="描述",embed=True),age: int = Body(..., le=120, title="年龄", embed=True),name: str = Body(..., regex="^xiao\d+$", embed=True)):return {"foo": foo, "age": age, "name": name}@app.post("/cpca")
async def read_item(timestamp: str = Body(min_length=13,title="时间戳",embed=True),key: str = Body(...,min_length=32, title="秘钥", embed=True),content: str = Body(...,min_length=2, embed=True)):key2 = timestamp+contentkey2 = md5(key2.encode(encoding='UTF-8')).hexdigest()key2 = md5(key2.encode(encoding='UTF-8')).hexdigest()if key==key2:df = cpca.transform([content])if df.size == 0:return {"status":False}else:province = df.省[0]city = df.市[0]district = df.区[0]areacode = df.adcode[0]if province==None:province = ""if city==None:city = ""if district==None:district = ""if areacode==None:areacode = ""return {"status":True,"content": content,"province":province, "city":city, "district":district, "areacode":areacode}else:return {"status":False}if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8001)

服务如果能正常运行,则可在服务器部署python环境,

或者用pyinstaller打包成exe,放服务器运行,打包时

需要注意cpca有个资源文件夹要一起打包。。。。

相关文章:

用fastapi搭建cpca地址提取服务接口

以前的客户地址比较乱,现在想提取出省份城市, 开始了解分词技术,后发现python有这样的库 cpca提取地址挺不错,可以从垃圾地址中提取省市区以及区号。 文章会用fastapi搭建服务端 通过post调用cpca,提取来了后&#…...

libvncclient编写多线程qt的VNC客户端

概述 使用qt和libvncclient编写vnc的客户端程序,多线程读写,拒绝卡顿。qt环境:5.15.3libvncclient:0.9.14下载地址:https://github.com/LibVNC/libvncserver/releases 编译libvncclient 打开CMakeList文件&#xff…...

视频处理基础之gradio框架实现

这些函数是用于处理视频文件的Python代码片段,它们依赖于ffmpeg和ffprobe工具,这些工具是FFmpeg项目的一部分,用于处理视频和音频数据。下面是每个函数的用途和用法的总结: 1. ffmpeg_installed() 函数: - 用途&am…...

黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装

文章目录 什么是缓存?添加Redis缓存店铺类型查询业务添加缓存练习题 缓存更新策略给查询商铺的缓存添加超时剔除和主动更新的策略 缓存穿透缓存空对象布隆过滤 缓存雪崩解决方案 缓存击穿解决方案基于互斥锁方式解决缓存击穿问题基于逻辑过期的方式解决缓存击穿问题…...

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)

概率DP: 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率(采用顺推) 从 初始状态推向结果,同一般的DP类似,只是经历了概率论知识的包装。 老题: 添加链接描述 题意: 袋子里有w只白鼠&am…...

[Python]生成器和yield关键字

生成器和yield关键字 1.生成器介绍: 概述: ​ 它指的是 generator, 类似于以前学过的: 列表推导式, 集合推导式, 字典推导式… 作用: ​ 降低资源消耗, 快速(批量)生成数据. 实现方式: ​ 1.推导式写法. my_generator (i for i in range(5))​ 2.yield写法. def get_gene…...

Nginx 负载均衡+高可用 集群部署(Keepalived+LVS DR模式)

一、LVS负载均衡简介 1.1 LVS基本介绍 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导开发的开源负载均衡项目,目前LVS已经被集成在Linux内核中。该项目在Linux内核中实现了基于IP地址的请求数据负载均衡调度方…...

算法 | 基础 | 出现奇数次的数字

这里写自定义目录标题 异或运算题目1题目2 本篇是关于异或(^)运算的运用。后期看算法过程中如果再碰到异或的都会收录到本篇中 异或运算 在逻辑学中,逻辑算符异或(exclusive or)是对两个运算元的一种逻辑析取类型&am…...

log4j 控制台和文件输出乱码问题解决

一个小问题,却让我感觉到,现在真正动脑的人很少。。我来说说吧。 今天遇到一个小问题, log4j输出到文件乱码,控制台正常。显然是编码问题导致。Google一搜,几乎一水的说: 项目中log4j在英文版linux下输出中…...

在国产芯片上实现YOLOv5/v8图像AI识别-【4.2】RK3588获取USB摄像头图像推流RTSP更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频:https://www.bilibili.com/video/BV1or421T74f 前言…...

TCP/IP协议栈详解及其在现代网络中的应用

在当今数字化时代,网络已成为我们生活中不可或缺的一部分。无论是社交、工作还是娱乐,网络都在背后发挥着至关重要的作用。而这一切的实现,都离不开TCP/IP协议栈。本文将详细介绍TCP/IP协议栈的结构、各层功能以及它在现代网络中的应用。 什…...

亚信安全荣获“2024年网络安全优秀创新成果大赛”优胜奖

近日,由中央网信办网络安全协调局指导、中国网络安全产业联盟(CCIA)主办的“2024年网络安全优秀创新成果大赛”评选结果公布。亚信安全信舱ForCloud荣获“创新产品”优胜奖,亚信安全“宁波市政务信息化网络数据安全一体化指挥系统…...

如何从硬盘恢复已删除/丢失的文件?硬盘恢复已删除的文件技巧

如何从硬盘恢复已删除/丢失的文件?本教程将教您如何使用专业硬盘恢复软件从内置或外置硬盘恢复数据,或不使用软件从硬盘恢复已删除的文件。 “有人知道如何从外部硬盘恢复文件吗?当我将外部硬盘插入计算机时,我错误地删除了一些文…...

[Linux]:权限

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. Linux权限的基本概念 1.1 root与普通用户 在Linux系统中,存在…...

启动Spring Boot报错

一、遇到的问题 启动Spring Boot报错 Unable to close ApplicationContext org.springframework.boot.SpringApplication: Application run failed java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.cache.CacheAutoCo…...

部署project_exam_system项目——及容器的编排

(一)安装docker、编辑daemon.json文件、安装docker-compose编排容器、启动docker 1.环境准备 [rootdocker--1 ~]# rz -Erz waiting to receive.[rootdocker--1 ~]# lsanaconda-ks.cfg docker.sh[rootdocker--1 ~]# source docker.sh [rootdocker--1 ~…...

网络工程师学习笔记——无线通信网

移动通信 从1G到3G都是针对语音通话设计的,只有4G才可以与Internet衔接 1978年美国贝尔实验室开发了高级移动电话系统(AMPS),可以随时随地的进行通信,采用蜂窝技术解决了公用通信系统所面临的大容量要求和…...

Vue(十三) 路由、路由嵌套、query、param传参、propos、replace属性。编程式路由导航,特有的生命周期函数,路由守卫

文章目录 路由1. 基本使用2. 多级(嵌套)路由3. 路由query传参4. 命名路由5. 路由param传参6. propos属性7. replace属性8. 编程式路由导航9. 缓存路由组件10. actived,deactived生命周期函数11. 路由守卫1、全局路由2、独享路由3、组件内路由守卫 12. 路由器工作的两…...

ArgoUML与StarUML的安装

ArgoUML与StarUML的安装 说明: 首次发表日期:2024-09-07ArgoUML 官网: https://argouml-tigris-org.github.io/tigris/argouml/StarUML 官网: https://staruml.io/ ArgoUML 以下内容基于: https://blog.csdn.net/h…...

828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)

1、为什么我们企业会选择Flexus云服务器X实例来部署自己的CRM管理系统? 因为基于华为云Flexus X实例搭建CRM管理平台,可以从容面对企业内部瞬息万变的业务压力变化 2、华为云服务器Flexus X方案及优势: 灵活伸缩 搭配弹性伸缩服务AS及负载均…...

Unity安卓打包实战指南:从环境配置到APK生成全链路排错

1. 这不是“入门教程”,而是一份写给真实开发现场的生存指南你打开Unity,新建一个3D项目,拖进一个Cube,点击Play——它动了。你松了口气,觉得“Unity好像也没那么难”。但当你把APK打包发给测试同事,对方回…...

C语言双端队列完整实现:一行代码吃透头尾操作,算法效率拉满

一、为什么C语言实现双端队列,是数据结构的必学天花板?在C语言数据结构里,队列、栈都是基础中的基础,但真正能把灵活度、效率、内存管理三者揉到一起的,还得是双端队列(deque)。普通队列只能一头…...

对比 Token Plan 与按量计费在 Taotoken 平台上的成本体感差异

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比 Token Plan 与按量计费在 Taotoken 平台上的成本体感差异 对于个人开发者或项目管理者而言,在接入大模型服务时&a…...

上线前最后一道防线,DeepSeek代码审查如何帮你拦截87%的CVE类缺陷?

更多请点击: https://intelliparadigm.com 第一章:上线前最后一道防线,DeepSeek代码审查如何帮你拦截87%的CVE类缺陷? 在软件交付生命周期末期,传统人工代码审计与通用SAST工具常因误报率高、上下文理解弱而漏检高危漏…...

<背包问题>

背包问题是一类组合优化问题,其基本形式是给定一组物品,每个物品都有一个重量和一个价值,以及一个有限的背包容量,目标是在不超过背包容量的前提下,选择物品使得背包中的物品价值最大化。动态规划是解决背包问题的常用…...

【Lindy营销自动化工作流终极指南】:20年实战验证的7大反脆弱性设计原则,92%企业漏掉的关键衰减阈值

更多请点击: https://intelliparadigm.com 第一章:Lindy营销自动化工作流的基本范式与历史验证 Lindy效应指出,一个事物的预期剩余寿命与其当前年龄成正比——在营销自动化领域,Lindy范式体现为:经时间检验仍被广泛采…...

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定

告别坐标点击!用Poco精准定位UI控件,让你的Airtest安卓自动化脚本更稳定每次UI微调就导致脚本大面积失效?分辨率变化让精心编写的自动化测试瞬间崩溃?作为从坐标点击转型到控件识别的实践者,我深刻理解这种挫败感。三年…...

AWS DevOps Agent 完全指南

AWS DevOps Agent 是 AWS 推出的前沿 AI 运维代理,自主调查和解决事件、持续预防故障、提升系统可靠性。本文档覆盖从原理到实战的全生命周期管理。 一、定位与价值 一句话定义 AWS DevOps Agent = AI 驱动的 SRE 队友,724 自主调查告警、定位根因、生成修复方案、预防未来…...

从无线破解到PDF解密:盘点那些容易被忽略的‘非主流’密码审计场景与工具

密码安全审计的隐秘战场:从无线网络到加密文档的实战指南 当大多数人谈论密码安全时,脑海中浮现的往往是服务器登录、数据库访问这些企业级场景。然而在数字生活的每个角落,从家庭Wi-Fi到工作文档,密码保护的脆弱性同样可能成为安…...

终极崩坏星穹铁道自动化指南:3分钟掌握解放双手的智能游戏伴侣

终极崩坏星穹铁道自动化指南:3分钟掌握解放双手的智能游戏伴侣 【免费下载链接】StarRailAssistant 崩坏:星穹铁道自动化 | 崩坏:星穹铁道自动锄大地 | 崩坏:星穹铁道锄大地 | 自动锄大地 | 基于模拟按键 项目地址: https://git…...