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

省市区三级联动查询redis(通过python脚本导入数据)

最近工作有一个工作需求是实现省市区联动,点击省下拉框,选中一个省,然后再选市,最后选区,当然最重要的首先自然是数据了,没数据怎么测试接口,我数据是在 https://hxkj.vip/demo/echartsMap/ 这里拿的,得到一个json文件,里面是一个list的结构,每一条数据都是省市区树级展示。

那么有数据之后,就要导入库中,之所以选用redis而不是mysql,是因为省市区数据是比较固定的,很难会有改动,所以放在redis反而更好

python脚本将json数据导入redis
import redis
import json
r = redis.Redis(host='127.0.0.1', port=6379, db=4)
with open("C:\\Users\\10926\Desktop\\pca-code.json", 'r',encoding='utf-8-sig') as file:data = json.load(file)
for item in data:r.lpush('regionData', json.dumps(item))

只需要改个文件路径名即可

省市区联动下拉框展示

此时redis中的数据是这种格式,通过code来实现父子关联:
在这里插入图片描述
那么我们就可以通过code来实现省市区联动:

	/***	没传code就是省,有就是市区* 分别查询省市区* @param regions* @param code* @return*/public List<RegionVO> getRegionsByCode(List<RegionVO> regions, String code, RegionFlag flag) {List<RegionVO> result = new ArrayList<>();for (RegionVO region : regions) {// 不传code时查询所有省if (code == null) {result.add(new RegionVO(region.getCode(), region.getName(), null));} else if (region.getCode().equals(code)) {// 传入省或市的code时if (region.getChildren() != null) {for (RegionVO child : region.getChildren()) {result.add(new RegionVO(child.getCode(), child.getName(), null));}flag.setValue(true);}}// 递归查询子区域else if (region.getChildren() != null) {result.addAll(getRegionsByCode(region.getChildren(), code, flag));}// 当查到指定数据后,退出循环if(flag.getValue()) {break;}}return result;}

这样,我们就实现了,省市区三级联动,点击省,会展示出所有的省份,选中一个省,就会展示所有的市,选中一个市,就会展示所有的区。

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

相关文章:

  • Linux命令(108)之dirname
  • SDL事件处理以及线程使用(2)
  • DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯
  • Redis快速上手篇七(集群-一台虚拟机六个节点)
  • 社恐了怎么办?如何改变社交恐惧症?
  • HiQPdf Library for .NET - HTML to PDF Crack
  • ES6中Set集合
  • 论坛介绍 | COSCon'23 开源文化(GL)
  • 【httpd】 Apache http服务器目录显示不全解决
  • 笔记本电脑搜索不到wifi6 无线路由器信号
  • js获取input?
  • STM32 CAN使用
  • 安全和便捷:如何将运营商二要素API应用于实名制管理中
  • leetcode-二叉树
  • 【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)
  • pytorch 笔记:KLDivLoss
  • 父子项目打包发布至私仓库
  • 汽车网络安全--ECU的安全更新
  • NLP之搭建RNN神经网络
  • Android问题笔记四十三:JNI 开发如何快速定位崩溃问题
  • 机器学习 | 决策树算法
  • javascript中各种风骚的代码
  • el-tree横向纵向滚动条
  • STM32G030F6P6 芯片实验 (一)
  • Wpf 使用 Prism 实战开发Day01
  • 6G关键新兴技术- 智能超表面(RIS)技术演进
  • 【redhat9.2】搭建Discuz-X3.5网站
  • 算法篇 : 并查集
  • AM@微积分基本定理@微积分第二基本定理
  • goland常用快捷键