当前位置: 首页 > 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;}

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

相关文章:

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

最近工作有一个工作需求是实现省市区联动&#xff0c;点击省下拉框&#xff0c;选中一个省&#xff0c;然后再选市&#xff0c;最后选区&#xff0c;当然最重要的首先自然是数据了&#xff0c;没数据怎么测试接口&#xff0c;我数据是在 https://hxkj.vip/demo/echartsMap/ 这里…...

Linux命令(108)之dirname

linux命令之dirname 1.dirname介绍 linux命令dirname是用来获取文件的指定路径 2.dirname用法 dirname [参数] NAME dirname参数 参数说明-z使用NUL而不是换行符分隔输出--help查看帮助信息--version查看版本信息 3.实例 3.1.获取文件的指定路径 命令&#xff1a; dirn…...

SDL事件处理以及线程使用(2)

事件使用 #include <stdio.h> #include <SDL.h>#define FF_QUIT_EVENT (SDL_USEREVENT 1) // 定义自定义事件#undef main int main() {SDL_Window* pWindow NULL;SDL_Init(SDL_INIT_VIDEO);// 创建窗口pWindow SDL_CreateWindow("Event Test Title&…...

DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯

动态规划理论 动态规划&#xff0c;Dynamic Programming&#xff0c; DP&#xff0c; 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推导…...

Redis快速上手篇七(集群-一台虚拟机六个节点)

​​​​​​http://t.csdnimg.cn/S0NpK与上篇六个虚拟机配置基本一样有不懂可以看上篇配置实例 集群搭建 根据上篇文章&#xff0c;本篇只着重于小方面的配置差别 配置集群一般不要设置密码 1.搭建一台虚拟机后再安装目录下新建文件夹 redis_cluster 2.在文件夹内创建六个文…...

社恐了怎么办?如何改变社交恐惧症?

社恐这个词已经算是普及了&#xff0c;自嘲自己是社恐的人真的挺多的&#xff0c;好像一句我社恐了就能解析很多问题&#xff0c;其实真正的社恐远比我们想象的要痛苦多了&#xff0c;社恐能被更多人认识到本来是件好事&#xff0c;但是过于的用社恐来给自己贴标签&#xff0c;…...

HiQPdf Library for .NET - HTML to PDF Crack

HiQPdf Library for .NET - HTML 到 PDF 转换器 .NET Core&#xff0c;用于 .NET 的 HiQPdf HTML 到 PDF 转换器 &#xff1a;HiQPdf HTML to PDF Library for .NET C# 和 HTML to PDF .NET Core 为您提供了一个现代、快速、灵活且强大的工具&#xff0c;只需几行代码即可创建复…...

ES6中Set集合

ES6中的Set是一种数据结构&#xff0c;类似于数组&#xff0c;但是它的值都是唯一的。它是通过一组有序的、由唯一元素组成的集合实现的&#xff0c;不允许重复项。Set可以用于存储任何类型的数据&#xff0c;包括原始类型和复合类型&#xff0c;如对象和数组。 Set有以下特点…...

论坛介绍 | COSCon'23 开源文化(GL)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…...

【httpd】 Apache http服务器目录显示不全解决

文章目录 1. 文件名过长问题1.1 在centos中文件所谓位置etc/httpd/conf.d/httpd-autoindex.conf1.2 在配置文件httpd-autoindex.conf中的修改&#xff1a;1.3 修改完成后重启Apache&#xff1a; 1. 文件名过长问题 1.1 在centos中文件所谓位置etc/httpd/conf.d/httpd-autoindex…...

笔记本电脑搜索不到wifi6 无线路由器信号

路由器更换成wifi6 无线路由器后&#xff0c;手机能搜索到这个无线信号&#xff0c;但是笔记本搜索不到这个无线信号&#xff0c;后网上搜索后发现是无线网卡驱动问题&#xff0c;很多无线网卡使用的是Intel芯片&#xff0c;Intel就此发布了公告&#xff0c;升级驱动就可以彻底…...

js获取input?

在JavaScript中&#xff0c;获取输入框&#xff08;通常指的是HTML的<input>元素&#xff09;的值有多种方法。以下是其中的一些&#xff1a; 通过ID获取&#xff1a; javascriptvar inputValue document.getElementById(inputId).value; 这里&#xff0c;inputId 是…...

STM32 CAN使用

STM32 CAN使用 简介各种通讯接口对比报文总线上的报文信息表示为几种固定的赖类型数据帧列表模式掩码模式配置CAN配置参数位时序 简介 控制器局域网CAN&#xff08;Controller Area Network)是由德国博世公司为汽车应用而开发的多主机局部网络&#xff0c;用于汽车的监测和控制…...

安全和便捷:如何将运营商二要素API应用于实名制管理中

引言 随着互联网的快速发展&#xff0c;数字化身份验证和实名制管理变得越来越重要。在金融、电子商务、社交媒体等领域&#xff0c;确保用户身份的安全和准确性至关重要。运营商二要素核验API成为了实名制管理的有力工具&#xff0c;它不仅能够提供高水平的安全性&#xff0c…...

leetcode-二叉树

B树和B树的区别 B树&#xff0c;也即balance树&#xff0c;是一棵多路自平衡的搜索树。它类似普通的平衡二叉树&#xff0c;不同的一点是B树允许每个节点有更多的子节点。 B树内节点不存储数据&#xff0c;所有关键字都存储在叶子节点上。B树&#xff1a; B树&#xff1a; 二叉…...

【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)

文章目录 前言一、TextTimer1.1 子组件1.2 接口参数TextTimerController 1.3 属性1.4 事件1.5 示例代码 二、TimePicker2.1 子组件2.2 接口参数 2.3 属性2.4 事件TimePickerResult对象说明 2.5 示例代码 总结 前言 通过文本显示计时信息并控制其计时器状态的组件。 时间选择组…...

pytorch 笔记:KLDivLoss

1 介绍 对于具有相同形状的张量 ypred​ 和 ytrue&#xff08;ypred​ 是输入&#xff0c;ytrue​ 是目标&#xff09;&#xff0c;定义逐点KL散度为&#xff1a; 为了在计算时避免下溢问题&#xff0c;此KLDivLoss期望输入在对数空间中。如果log_targetTrue&#xff0c;则目标…...

父子项目打包发布至私仓库

父子项目打包发布至私仓库 1、方法一 在不需要发布至私仓的模块上添加如下代码&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><configuration><skip>true</s…...

汽车网络安全--ECU的安全更新

目前,汽车ECU的软件更新可以总结分成三大类: 工厂刷写模式:工厂大批量刷写或者升级,一般在出厂用; 工程模式:4S店、工厂等专业人员进行的ECU固件更新,通常是动力、转向、车控等; 车主模式:车主根据云端推送信息,通过IVI进行应用软件更新;目前也有趋势通过这种方式刷…...

NLP之搭建RNN神经网络

文章目录 代码展示代码意图代码解读知识点介绍1. Embedding2. SimpleRNN3. Dense 代码展示 # 构建RNN神经网络 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, SimpleRNN, Embedding import tensorflow as tfrnn Sequential() …...

Emby Premiere完全免费解锁终极教程:简单三步享受高级媒体服务器功能

Emby Premiere完全免费解锁终极教程&#xff1a;简单三步享受高级媒体服务器功能 【免费下载链接】emby-unlocked Emby with the premium Emby Premiere features unlocked. 项目地址: https://gitcode.com/gh_mirrors/em/emby-unlocked 你是否曾经为Emby Premiere的高级…...

拯救你的RStudio Server:除了点‘Terminate R’,你还可以试试这几招(附原理)

拯救你的RStudio Server&#xff1a;除了点‘Terminate R’&#xff0c;你还可以试试这几招&#xff08;附原理&#xff09; 当你盯着RStudio Server界面上那个转个不停的加载图标&#xff0c;看着"R is taking longer to start than usual"的提示&#xff0c;内心可…...

SpringBoot+Mybatis多数据源实战:TDengine与MySQL混搭的物联网数据存储方案

SpringBootMybatis多数据源实战&#xff1a;TDengine与MySQL混搭的物联网数据存储方案 在物联网系统开发中&#xff0c;数据存储架构的设计往往面临一个核心矛盾&#xff1a;海量设备时序数据的高效存储与业务数据的复杂关系处理如何平衡&#xff1f;传统单一数据库方案要么在时…...

科研写作效率提升300%:WPS-Zotero跨平台文献管理终极指南

科研写作效率提升300%&#xff1a;WPS-Zotero跨平台文献管理终极指南 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero WPS-Zotero是一款革命性的WPS Office插件&#xff0c;专…...

避坑指南:GD32F407移植FATFS到SD卡,这几个STM32老司机常踩的坑你别再跳了

GD32F407 FATFS移植避坑实战&#xff1a;STM32老手最容易忽略的5个硬件差异 从STM32切换到GD32F407的开发者&#xff0c;往往带着"Pin to Pin兼容"的预期开始SD卡文件系统移植&#xff0c;却在调试阶段遭遇各种诡异问题。上周一位资深工程师向我展示了他的调试记录&a…...

Uncertainty-Aware Pixel-Level Contrastive Learning for Enhanced Semi-Supervised Medical Image Segmen

1. 医学图像分割的挑战与半监督学习机遇 医学图像分割一直是计算机视觉领域的重要研究方向&#xff0c;它能够帮助医生快速定位病灶区域&#xff0c;提高诊断效率。但在实际应用中&#xff0c;我们常常面临标注数据稀缺的问题——专业医生标注一张CT或MRI图像可能需要数小时&am…...

Anaconda环境配置:TranslateGemma开发最佳实践

Anaconda环境配置&#xff1a;TranslateGemma开发最佳实践 1. 环境准备与快速部署 如果你正在尝试运行TranslateGemma-12B-it这样的翻译模型&#xff0c;很可能会遇到Python版本冲突、CUDA不兼容或者依赖包打架的问题。Anaconda的环境隔离功能正好能解决这些头疼的事情。 An…...

OpenClaw二次开发指南:修改Qwen3-VL:30B的飞书交互协议

OpenClaw二次开发指南&#xff1a;修改Qwen3-VL:30B的飞书交互协议 1. 为什么需要定制飞书交互协议 去年11月第一次尝试用OpenClaw对接飞书时&#xff0c;我遇到了一个典型问题&#xff1a;标准协议下发送的Markdown消息在Qwen3-VL:30B多轮对话中频繁出现格式错乱。这个30B参…...

YOLOv9官方镜像深度体验:开箱即用,效果超出预期

YOLOv9官方镜像深度体验&#xff1a;开箱即用&#xff0c;效果超出预期 1. 镜像初体验&#xff1a;零配置启动的惊喜 第一次接触YOLOv9官方镜像时&#xff0c;我带着怀疑的态度——毕竟在深度学习领域&#xff0c;"开箱即用"的承诺往往伴随着各种隐藏的环境配置问题…...

从WHL文件到集成开发:Windows系统下PySide2的完整部署指南

1. 为什么选择PySide2开发Windows GUI应用 用Python开发图形界面程序有很多选择&#xff0c;但PySide2绝对是Windows平台下最值得推荐的工具之一。作为Qt官方绑定的Python库&#xff0c;PySide2不仅功能强大&#xff0c;还能免费商用。我最早接触PySide2是在一个工业控制项目里…...