国外订房网站怎么和做/佛山做优化的公司

国外订房网站怎么和做,佛山做优化的公司,网页制作网站建设公司,牛网站现有一个需求,调用高德api获取全国县级以上行政区数据并保存为json文件,使用python获取: import requests import json# 高德API Key api_key "your_api_key"# 调用行政区域查询API def fetch_districts():url f"https://r…

现有一个需求,调用高德api获取全国县级以上行政区数据并保存为json文件,使用python获取:

import requests
import json# 高德API Key
api_key = "your_api_key"# 调用行政区域查询API
def fetch_districts():url = f"https://restapi.amap.com/v3/config/district?key={api_key}&subdistrict=3&extensions=base"response = requests.get(url)if response.status_code == 200:return response.json()else:print("请求失败,状态码:", response.status_code)return None# 提取省市县区数据
def extract_regions(districts):regions = []for district in districts:# 提取当前节点if district["level"] in ["province", "city", "district"]:regions.append({"name": district["name"],"level": district["level"],"adcode": district["adcode"],"citycode": district["citycode"],"center": district["center"]})# 递归提取子节点if "districts" in district:regions.extend(extract_regions(district["districts"]))return regions# 保存数据为JSON文件
def save_to_json(data, filename):with open(filename, "w", encoding="utf-8") as f:json.dump(data, f, ensure_ascii=False, indent=4)print(f"数据已保存到 {filename}")# 主函数
def main():# 获取数据data = fetch_districts()if data:# 提取省市县区数据regions = extract_regions(data["districts"])# 保存为JSON文件save_to_json(regions, "regions.json")if __name__ == "__main__":main()

获得的行政区数据结构如下(部分数据):

[{"name": "河南省","level": "province","adcode": "410000","citycode": [],"center": "113.753094,34.767052"},{"name": "洛阳市","level": "city","adcode": "410300","citycode": "0379","center": "112.453895,34.619702"},{"name": "新安县","level": "district","adcode": "410323","citycode": "0379","center": "112.13246,34.728909"}
]

在mysql中新建一张表,存储这些数据:

CREATE TABLE administrative_regions (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',name VARCHAR(100) NOT NULL COMMENT '行政区名称',level VARCHAR(50) NOT NULL COMMENT '行政区级别(province/city/district)',adcode VARCHAR(20) NOT NULL COMMENT '行政区编码',citycode VARCHAR(20) COMMENT '城市编码',center VARCHAR(50) COMMENT '行政区中心点坐标',parent_id INT COMMENT '上级行政区ID',first_letter_1 CHAR(1)  COMMENT '行政区名称第1个字的首字母',first_letter_2 CHAR(1)  COMMENT '行政区名称第2个字的首字母',CONSTRAINT fk_parent_id FOREIGN KEY (parent_id) REFERENCES administrative_regions(id)
) COMMENT='全国省市县区数据表';

使用navicat将json数据导入本地数据库,生成表中name,level,adcode,citycode,center的值。

如果想实现按行政区名称第1个字和第2个字拼音首字母返回,可借助python的拼音库为表中first_letter_1和first_letter_2字段赋值,下面说下具体实现步骤:

1.安装pymysql和pypinyin库:

pip install pymysqlpip install pypinyin

2.写一个python脚本,连上mysql数据库,使用pypinyin库获得行政区名称第1个字和第2个字拼音首字母,然后批量修改first_letter_1和first_letter_2字段的值:

import pymysql
from pypinyin import pinyin, Style# 数据库连接配置
db_config = {'host': 'localhost','port': 3306,'user': 'root','password': 'root','database': 'area','charset': 'utf8mb4'
}# 获取汉字的拼音首字母
def get_first_letter(chinese_char):return pinyin(chinese_char, style=Style.FIRST_LETTER)[0][0].upper()
# 连接数据库
connection = pymysql.connect(**db_config)
cursor = connection.cursor()# 查询所有行政区名称
cursor.execute("SELECT id, name FROM administrative_regions")
regions = cursor.fetchall()# 更新 first_letter_1 和 first_letter_2
for region in regions:region_id, name = regionif len(name) >= 1:first_letter_1 = get_first_letter(name[0])else:first_letter_1 = ''if len(name) >= 2:first_letter_2 = get_first_letter(name[1])else:first_letter_2 = ''# 更新数据库cursor.execute("UPDATE administrative_regions SET first_letter_1 = %s, first_letter_2 = %s WHERE id = %s",(first_letter_1, first_letter_2, region_id))# 提交事务并关闭连接
connection.commit()
cursor.close()
connection.close()

更新后的表数据为:

最后,编写sql语句,实现按名称首字母分类返回,本人服务器端程序使用Java开发,下面是示例:

查询语句:

 SELECT name, first_letter_1 FROM administrative_regions  ORDER BY first_letter_1, first_letter_2

 service代码:

public Map<String, List<String>> getAreaGroupedByFirstLetter1() {List<AdministrativeRegions> regions = baseMapper.selectAllRegions();Map<String, List<String>> map = regions.stream().collect(Collectors.groupingBy(AdministrativeRegions::getFirstLetter1,Collectors.mapping(AdministrativeRegions::getName, Collectors.toList())));return map;}

最后,得到类似下面的行政区数据:

{

    "msg": "操作成功",

    "code": 200,

    "data": {

        "A": [

            "昂昂溪区",

            "阿巴嘎旗",

            "阿坝藏族羌族自治州",

            "阿坝县",

            "阿城区",

               ..............

            ],

       ....

   }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redisson 实现分布式锁源码浅析

大家好&#xff0c;我是此林。 今天来分享Redisson分布式锁源码。还是一样&#xff0c;我们用 问题驱动 的方式展开讲述。 1. redis 中如何使用 lua 脚本&#xff1f; Redis内置了lua解释器&#xff0c;lua脚本有两个好处&#xff1a; 1. 减少多次Redis命令的网络传输开销。…

【软件】免费的PDF全文翻译软件,能保留公式图表的样式

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 很多PDF全文翻译软件都是收费的&#xff0c;而划线翻译看着又很累。这个开源的PDF全文翻译软件非常好用&#xff0c;并且能够保留公式、图表、目录和注…

PentestGPT 下载

PentestGPT 下载 PentestGPT 介绍 PentestGPT&#xff08;Penetration Testing GPT&#xff09;是一个基于大语言模型&#xff08;LLM&#xff09;的智能渗透测试助手。它结合了 ChatGPT&#xff08;或其他 GPT 模型&#xff09;与渗透测试工具&#xff0c;帮助安全研究人员自…

防火墙虚拟系统实验

一实验拓扑 二实验过程 配置资源 创建虚拟系统 配置管理员 创建安全策略

Linux与深入HTTP序列化和反序列化

深入HTTP序列化和反序列化 本篇介绍 在上一节已经完成了客户端和服务端基本的HTTP通信&#xff0c;但是前面的传递并没有完全体现出HTTP的序列化和反序列化&#xff0c;为了更好得理解其工作流程&#xff0c;在本节会以更加具体的方式分析到HTTP序列化和反序列化 本节会在介绍…

基于Python+SQLite实现(Web)验室设备管理系统

实验室设备管理系统 应用背景 为方便实验室进行设备管理&#xff0c;某大学拟开发实验室设备管理系统 来管理所有实验室里的各种设备。系统可实现管理员登录&#xff0c;查看现有的所有设备&#xff0c; 增加设备等功能。 开发环境 Mac OSPyCharm IDEPython3Flask&#xff…

深拷贝and浅拷贝!

一、什么是拷贝&#xff1f;什么是深拷贝和浅拷贝&#xff1f; &#xff08;1&#xff09;拷贝&#xff1a;拷贝就是为了复用原对象的部分or全部数据&#xff0c;在原对象的基础上通过复制的方式创建一个新的对象。 拷贝对象可以分为三种类型&#xff1a;直接赋值、浅拷贝和深拷…

高频面试题(含笔试高频算法整理)基本总结回顾43

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…

网络爬虫【简介】

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲视图 一、网络爬虫的定义 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;又称为网络蜘蛛、网络机器人等&#xff0c;是一种按照一定规则自动抓取互联网信息的程序或脚本。它…

​AI时代到来,对电商来说是效率跃升,还是温水煮青蛙

​凌晨三点的义乌商贸城&#xff0c;95后创业者小王&#xff0c;静静地盯着屏幕上的AI工具&#xff0c;竟露出了笑容。这个月他的跨境玩具店销量提升了不少&#xff0c;从之前的状态翻了3倍&#xff1b;而且团队人数有所变化&#xff0c;从5人缩减到了2人&#xff08;其中包括他…

PDF文件密码保护破解:安全解密的步骤与技巧

PDF文件加密后&#xff0c;需要特定的密码才能访问内容。以下是一些常见的方法来解密PDF文件&#xff1a; 方法一&#xff1a;使用Adobe Acrobat 如果你有Adobe Acrobat Pro&#xff0c;可以使用它来解密PDF文件。 打开Adobe Acrobat Pro&#xff1a; 启动Adobe Acrobat Pro…

qt 自带虚拟键盘的编译使用记录

一、windows 下编译 使用vs 命令窗口&#xff0c;分别执行&#xff1a; qmake CONFIG"lang-en_GB lang-zh_CN" nmake nmake install 如果事先没有 指定需要使用的输入法语言就进行过编译&#xff0c;则需要先 执行 nmake distclean 清理后执行 qmake 才能生效。 …

C++刷题(二):栈 + 队列

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及刷题记录&#xff0c;使用语言为C。 每道题我会给出LeetCode上的题号&#xff08;如果有题号&#xff09;&#xff0c;题目&#xff0c;以及最后通过的代码。没有题号的题目大多来自牛客网。对于题目的…

精通游戏测试笔记(持续更新)

第一章、游戏测试的两条规则 不要恐慌 不要将这次发布当作最后一次发布 不要相信任何人 把每次发布当作最后一次发布 第二章&#xff1a;成为一名游戏测试工程师

Windows功能之FTP服务器搭建

一、创作背景 之前有用linux系统搭建过ftp服务器&#xff0c;最近想着用windows系统也顺便搭建一个&#xff0c;看网上有第三方服务软件一键部署&#xff0c;记得windows可以不借助第三方软件就可以搭建&#xff0c;就想顺便操作试试&#xff0c;结果老是连接不上&#xff0c;费…

星型组网模块的两种交互方式优缺点解析

星型组网模块简介 星型组网模块工作在433MHz频段&#xff1b;星型组网模块集主机&#xff08;协调器&#xff09;、终端为一体&#xff0c;星型组网模块具有长距离、高速率两种传输模式&#xff0c;一个主机&#xff08;协调器&#xff09;支持多达200个节点与其通讯&#xff0…

【2025.3.13】记一次双系统笔记本加装固态硬盘记录 linux扩容 linux更换/home和/opt所在硬盘 windows无法调整亮度

文章目录 &#x1f315;事情经过&#x1f315;更换/home和/opt的挂载硬盘&#x1f319;目的&#x1f319;初始化1t固态硬盘&#x1f319;打开Linux查看硬盘信息&#x1f319;给新1t固态硬盘分区&#x1f319;格式化分区&#x1f319;把新1t固态硬盘先挂载到/mnt/ssd_1t 用于后续…

【测试语言基础篇】Python基础之List列表

一、Python 列表(List) 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置&#xff0c;或索引&#xff0c;第一个索引是0&#xff0c;第二个索引是1&#xff0c;依此类推。 Python有6个序列的内置类型&#xff0c;但最常见的是列表和元组。序列都可…

软件测试之使用Requests库进行接口测试

文章目录 前言Requests库是什么为什么要用Requests库进行接口测试安装Requests库Requests库使用发送GET请求发送带查询参数的GET请求响应内容格式添加请求头信息发送一个POST请求查看响应内容断言请求超时Cookie与Session模拟登录 参考目录 前言 阅读本文前请注意最后编辑时间…

AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

AttributeError: module backend_interagg has no attribute FigureCanvas 这个错误通常是由于 Matplotlib 的后端配置问题引起的。具体来说&#xff0c;Matplotlib 在尝试加载某个后端时&#xff0c;发现该后端模块中缺少必要的属性&#xff08;如 FigureCanvas&#xff09;&a…