python-根据左右值获取城市区域编码
def get_adcode(city):
"""
根据城市获取区域编码
:param city:
:return:
"""
db = dbTool.conDB(dbTool.MYSQLDB, dbTool.MYSQLDBNAME)
sql = "SELECT adcode,dispname,lft,rgt,dep FROM citycode_rela WHERE dispname LIKE '"+city+"%'"
result = list(db.query(sql))
if not result:
return result
else:
adlist = []
for addict in result:
param1 = {'adcode': addict['adcode'], 'dispname': addict['dispname'], 'lft': addict['lft'], 'rgt': addict['rgt']}
if addict['rgt'] - addict['lft'] > 1: #根据左右值判断是否是最后一级
sql1 = "" if addict['dep'] == 3: #判断是否是第三级,如何济南市 淄博市,用来取省份
sql1 += " SELECT $adcode AS adcode,$dispname AS dispname,dispname AS supername " \
"FROM citycode_rela WHERE lft<$lft AND rgt>$rgt AND dep=2 UNION" #取出该级下的所有下一级
sql1 += " SELECT adcode,dispname,$dispname AS supername FROM citycode_rela WHERE lft>$lft AND rgt<$rgt "
adlist.extend(list(db.query(sql1, vars=param1))) else: # 最后一级 #用来取省份
sql2 = "SELECT dispname AS supername,$adcode AS adcode,$dispname AS dispname " \
"FROM citycode_rela WHERE lft<$lft AND rgt>$rgt AND dep=2" adlist.extend(list(db.query(sql2, vars=param1)))
return sorted(adlist, key=lambda x: x['adcode'], reverse=False)
res = get_adcode('山东')
for item in res:
print ''.join([item['supername'],'-',item['dispname'],'-',str(item['adcode'])])
结果:
山东省-济南市-370100
山东省-历下区-370102
山东省-市中区-370103
山东省-槐荫区-370104
山东省-天桥区-370105
山东省-历城区-370112
山东省-长清区-370113
.....
res = get_adcode('济南')
for item in res:
print ''.join([item['supername'],'-',item['dispname'],'-',str(item['adcode'])])
结果:
山东省-济南市-370100
济南市-历下区-370102
济南市-市中区-370103
济南市-槐荫区-370104
济南市-天桥区-370105
济南市-历城区-370112
res = get_adcode('历下区')
for item in res:
print ''.join([item['supername'],'-',item['dispname'],'-',str(item['adcode'])])
结果:
山东省-历下区-370102
参考数据:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
python-根据左右值获取城市区域编码的更多相关文章
- 【python练手】获取城市天气质量
#!/usr/bin/python # -*- coding: utf-8 -*- # get city pm2.5 and ranking # python2.7 import sys import ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- ARCGIS API for Python进行城市区域提取
ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用.功能强大的Python库,以及大数据分析能力,可轻松实现实时数据.栅格数据.空间数据等多源数据的接入和GIS分析 ...
- python封装configparser模块获取conf.ini值(优化版)
昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...
- python封装configparser模块获取conf.ini值
configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数.修改参数.读取参数等都有对应的参数供用 ...
- python执行系统命令后获取返回值的几种方式集合
python执行系统命令后获取返回值的几种方式集合 今天小编就为大家分享一篇python执行系统命令后获取返回值的几种方式集合,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 第一种情 ...
- python爬虫实践--求职Top10城市
前言 从智联招聘爬取相关信息后,我们关心的是如何对内容进行分析,获取用用的信息.本次以上篇文章“5分钟掌握智联招聘网站爬取并保存到MongoDB数据库”中爬取的数据为基础,分析关键词为“python” ...
- 移动端城市定位,城市区域代码adcode
使用高德定位API : AMap.Map('iCenter') AMap.CitySearch() 先在高德开放平台注册申请定位权限的key. 网站:高德开放平台 在需要定位的页面引入有定位key的s ...
- python 浅谈小数据池和编码
⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...
随机推荐
- 【Leetcode】【Hard】Merge Intervals
Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...
- Java并行程序设计模式小结
这里总结几种常用的并行程序设计方法,其中部分文字源自<Java程序性能优化>一书中,还有部分文字属于个人总结,如有不对,请大家指出讨论. Future模式 一句话,将客户端请求的处理过程从 ...
- BUILD 2015: Visual Studio对GitHub的支持
微软BUILD 2015大会上发布了Visual Studio 对GitHub的支持.安装了如下Developer Assistant插件后,你便可以在Visual Studio中找到GitHub上的 ...
- C语言实现单链表-04版
前面的版本似乎没能让项目经理满意,他还希望这个链表有更多的功能: 我们接下来要解决几个比较简单的功能: Problem 1,更加友好的显示数据: 2,能够通过名字删除节点: Solution 首先我们 ...
- javaweb学习总结(十九)——JSP标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- oracle sqlserver mysql数据库分页
1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM tabl ...
- mac下Nginx+lua模块编译安装
Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...
- 在线测试 ssl 安全性
记录下, https://www.ssllabs.com/index.html
- nginx是一个反向代理的软件
nginx只是一个反向代理的软件,和语言无关,理论上支持任何Web平台,当然http://Asp.net也不例外,http://51aspx.com就是http://Asp.net开发的,前端暴漏的是 ...
- NR_OPEN 与 NR_FILE 的区别
NR_OPEN 与 NR_FILE 的区别 阅读0.11版的内核源码时,在linux-0.11/fs/pipe.c中,函数sys_pipe()里面出现了2个宏定义,NR_OPEN 与 NR_FILE. ...