当前位置: 首页 > 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有个资源文件夹要一起打包。。。。

http://www.lryc.cn/news/432563.html

相关文章:

  • libvncclient编写多线程qt的VNC客户端
  • 视频处理基础之gradio框架实现
  • 黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装
  • 概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)
  • [Python]生成器和yield关键字
  • Nginx 负载均衡+高可用 集群部署(Keepalived+LVS DR模式)
  • 算法 | 基础 | 出现奇数次的数字
  • log4j 控制台和文件输出乱码问题解决
  • 在国产芯片上实现YOLOv5/v8图像AI识别-【4.2】RK3588获取USB摄像头图像推流RTSP更多内容见视频
  • TCP/IP协议栈详解及其在现代网络中的应用
  • 亚信安全荣获“2024年网络安全优秀创新成果大赛”优胜奖
  • 如何从硬盘恢复已删除/丢失的文件?硬盘恢复已删除的文件技巧
  • [Linux]:权限
  • 启动Spring Boot报错
  • 部署project_exam_system项目——及容器的编排
  • 网络工程师学习笔记——无线通信网
  • Vue(十三) 路由、路由嵌套、query、param传参、propos、replace属性。编程式路由导航,特有的生命周期函数,路由守卫
  • ArgoUML与StarUML的安装
  • 828华为云征文|华为云服务器Flexus X搭建悟空crm管理系统——助力企业云上管理(解决APP Referer校验失败问题)
  • 计算机毕业设计选题推荐-健康健身追踪系统-运动健身系统-Java/Python项目实战
  • FPGA开发:初识FPGA × 开发环境
  • 电脑驱动分类
  • 理解C++全局对象析构顺序与 IPC 资源管理:避免 coredump
  • 云计算之大数据(下)
  • 硬件工程师笔试面试知识器件篇——二极管
  • 操作系统安全保护
  • STM32硬件篇:W25Q64
  • uni-app 获取当前位置的经纬度以及地址信息
  • 【CSS】尺寸单位
  • Agent(智能体)和 MetaGPT,一句话实现整个需求应用代码