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-根据左右值获取城市区域编码的更多相关文章

  1. 【python练手】获取城市天气质量

    #!/usr/bin/python # -*- coding: utf-8 -*- # get city pm2.5 and ranking # python2.7 import sys import ...

  2. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  3. ​​​​​​​ARCGIS API for Python进行城市区域提取

    ​ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用.功能强大的Python库,以及大数据分析能力,可轻松实现实时数据.栅格数据.空间数据等多源数据的接入和GIS分析 ...

  4. python封装configparser模块获取conf.ini值(优化版)

    昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...

  5. python封装configparser模块获取conf.ini值

    configparser模块是python自带的从文件中获取固定格式参数的模块,因为是python只带的,大家用的应该很多,我觉得这个参数模块比较灵活,添加参数.修改参数.读取参数等都有对应的参数供用 ...

  6. python执行系统命令后获取返回值的几种方式集合

    python执行系统命令后获取返回值的几种方式集合 今天小编就为大家分享一篇python执行系统命令后获取返回值的几种方式集合,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 第一种情 ...

  7. python爬虫实践--求职Top10城市

    前言 从智联招聘爬取相关信息后,我们关心的是如何对内容进行分析,获取用用的信息.本次以上篇文章“5分钟掌握智联招聘网站爬取并保存到MongoDB数据库”中爬取的数据为基础,分析关键词为“python” ...

  8. 移动端城市定位,城市区域代码adcode

    使用高德定位API : AMap.Map('iCenter') AMap.CitySearch() 先在高德开放平台注册申请定位权限的key. 网站:高德开放平台 在需要定位的页面引入有定位key的s ...

  9. python 浅谈小数据池和编码

    ⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...

随机推荐

  1. 大熊君说说JS与设计模式之------命令模式Command

    一,总体概要 1,笔者浅谈 日常生活中,我们在看电视的时候,通过遥控器选择我们喜欢的频道时,此时我们就是客户端的角色,遥控器的按钮相当于客户请求,而具体执行的对象就是命令对象, 命令模式把一个请求或者 ...

  2. 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

    两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中实现存 ...

  3. jQuery Ztree基本用法

    1.首先在页面上有<ul/>标签 <ul id="tree" class="ztree"></ul> 2.定义ztree的配 ...

  4. Qt之课外实践——文件操作(简单清道夫)

    说明:这个小项目是关于文件操作的.主要的功能有:重复文件的查找(根据文件的大小),说白了,就是讲大小相同的文件在一起显示出来,供用户自由的选择删除.这个360云盘里的文件去重还差的很远.还有空文件夹的 ...

  5. [读书笔记]C#学习笔记六: C#3.0Lambda表达式及Linq解析

    前言 最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或 ...

  6. paip.代码生成器数据源格式最佳实践

    paip.代码生成器数据源格式最佳实践 需要满足几个条件. 1.基于文本 2.容易的编辑.. 3,容易的代码解析. 这样,常用的设计工具powerdesign cdm pdm就排除兰...cdm虽然是 ...

  7. MySQL基础操作(一)

    1. 连接数据库mysql -h localhost -u root -p 123456 2. 查看数据库版本select version(); 3. 查看数据库支持的存储引擎和当前默认存储引擎sho ...

  8. Radio Basics for RFID

    Radio Basics for RFID The following is excerpted from Chapter 3: Radio Basics for UHF RFID from the ...

  9. 旧手机作为USB无线网卡使用(分享WIFI、蓝牙连接)

    首先开启手机的WIFI或者蓝牙功能,建立访问互联网的连接,然后设置-更多-网络共享与便携热点,打开安卓手机USB网络共享功能,即可在计算机上通过手机(无电话卡.数据卡)访问互联网.而且此时手机一直在充 ...

  10. java目录

    1. 在jsp文件或Servlet中,可以通过getServletContext().getRealPath("/")来获取项目根目录的绝对路径. 2. Java桌面程序中,可以通 ...