米扑科技因项目需要,自己写代码统计,中国县级数据来源于 中国县级以上城市的行政区划代码

4     鼓楼     河南省_开封市_鼓楼区, 福建省_福州市_鼓楼区, 江苏省_南京市_鼓楼区, 江苏省_徐州市_鼓楼区

3     桥西     河北省_石家庄市_桥西区, 河北省_邢台市_桥西区, 河北省_张家口市_桥西区

3     新华     河南省_平顶山市_新华区, 河北省_石家庄市_新华区, 河北省_沧州市_新华区

3     铁西     吉林省_四平市_铁西区, 辽宁省_沈阳市_铁西区, 辽宁省_鞍山市_铁西区

3     西安     黑龙江省_牡丹江市_西安区, 陕西省_西安市_西安市, 吉林省_辽源市_西安区

3     朝阳     吉林省_长春市_朝阳区, 北京市_市辖区_朝阳区, 辽宁省_朝阳市_朝阳市

2     永定     湖南省_张家界市_永定区, 福建省_龙岩市_永定区

2     栖霞     江苏省_南京市_栖霞区, 山东省_烟台市_栖霞市

2     克拉玛依     新疆维吾尔自治区_克拉玛依市_克拉玛依市, 新疆维吾尔自治区_克拉玛依市_克拉玛依区

2     矿区     山西省_大同市_矿区, 山西省_阳泉市_矿区

2     通州     江苏省_南通市_通州区, 北京市_市辖区_通州区

2     桥东     河北省_邢台市_桥东区, 河北省_张家口市_桥东区

2     西湖     浙江省_杭州市_西湖区, 江西省_南昌市_西湖区

2     安宁     甘肃省_兰州市_安宁区, 云南省_昆明市_安宁市

2     淮安     江苏省_淮安市_淮安市, 江苏省_淮安市_淮安区

2     河北     天津市_市辖区_河北区, 河北省_河北省_河北省

2     兴宁     广西壮族自治区_南宁市_兴宁区, 广东省_梅州市_兴宁市

2     宝山     黑龙江省_双鸭山市_宝山区, 上海市_市辖区_宝山区

2     南山     黑龙江省_鹤岗市_南山区, 广东省_深圳市_南山区

2     开平     河北省_唐山市_开平区, 广东省_江门市_开平市

2     东港     山东省_日照市_东港区, 辽宁省_丹东市_东港市

2     昌邑     吉林省_吉林市_昌邑区, 山东省_潍坊市_昌邑市

2     中山     辽宁省_大连市_中山区, 广东省_中山市_中山市

2     大安     四川省_自贡市_大安区, 吉林省_白城市_大安市

2     铁东     吉林省_四平市_铁东区, 辽宁省_鞍山市_铁东区

2     吉林     吉林省_吉林省_吉林省, 吉林省_吉林市_吉林市

2     青山     内蒙古自治区_包头市_青山区, 湖北省_武汉市_青山区

2     长安     陕西省_西安市_长安区, 河北省_石家庄市_长安区

2     白云     贵州省_贵阳市_白云区, 广东省_广州市_白云区

2     东营     山东省_东营市_东营区, 山东省_东营市_东营市

2     东兴     四川省_内江市_东兴区, 广西壮族自治区_防城港市_东兴市

2     荆州     湖北省_荆州市_荆州市, 湖北省_荆州市_荆州区

2     黄山     安徽省_黄山市_黄山市, 安徽省_黄山市_黄山区

2     海城     广西壮族自治区_北海市_海城区, 辽宁省_鞍山市_海城市

2     江北     浙江省_宁波市_江北区, 重庆市_市辖区_江北区

2     大同      黑龙江省_大庆市_大同区, 山西省_大同市_大同市

2     资阳     四川省_资阳市_资阳市, 湖南省_益阳市_资阳区

2     城关     甘肃省_兰州市_城关区, 西藏自治区_拉萨市_城关区

2     和平     天津市_市辖区_和平区, 辽宁省_沈阳市_和平区

2     新城     内蒙古自治区_呼和浩特市_新城区, 陕西省_西安市_新城区

2     海南     内蒙古自治区_乌海市_海南区, 海南省_海南省_海南省

2     普陀     浙江省_舟山市_普陀区, 上海市_市辖区_普陀区

2     伊春     黑龙江省_伊春市_伊春市, 黑龙江省_伊春市_伊春区

2     向阳     黑龙江省_鹤岗市_向阳区, 黑龙江省_佳木斯市_向阳区

2     海州     江苏省_连云港市_海州区, 辽宁省_阜新市_海州区

2     广安     四川省_广安市_广安市, 四川省_广安市_广安区

2     鹤山     河南省_鹤壁市_鹤山区, 广东省_江门市_鹤山市

2     河东     天津市_市辖区_河东区, 山东省_临沂市_河东区

2     白银     甘肃省_白银市_白银市, 甘肃省_白银市_白银区

 

 

Python 数据格式

CHINA_CITY_DICT = {
                        0         :     "-",
                        110000    :     "北京市",
                        110100    :     "市辖区",
                        110101    :     "东城区",
                        110102    :     "西城区",
                        110105    :     "朝阳区",
                        110106    :     "丰台区",
                        110107    :     "石景山区",
                        110108    :     "海淀区",
                        110109    :     "门头沟区",
                        110111    :     "房山区",
                        110112    :     "通州区",
                        110113    :     "顺义区",
                        110114    :     "昌平区",
                        110115    :     "大兴区",
                        110116    :     "怀柔区",
                        110117    :     "平谷区",
                        110118    :     "密云区",
                        .....
}

 

Python 统计代码

def stat_city_ch(cls):
    stat_city_dict = {}                 # 统计个数
    stat_city_num_name_dict = {}        # 保存城市个数对应的区号
    
    for city_status, city_ch in CHINA_CITY_DICT.iteritems():
        if city_ch in ["市辖区", "城区", "郊区", "城中区", "市中区", "省直辖县级行政区划"]: continue
        
        # 大于两个汉字以上的城市,去掉末尾的省市区
        city_ch_len = len(city_ch.decode('utf-8'))
        if city_ch_len > 2:
            city_ch = city_ch.rstrip("省")
            city_ch = city_ch.rstrip("市")
            city_ch = city_ch.rstrip("区")
        city_ch_num = stat_city_dict.get(city_ch, 0)
        
        # 用于保存城市个数对应的城市区号(获取城市名称用)
        city_status_old = stat_city_num_name_dict.get(city_ch+"_"+str(city_ch_num), '')     
        city_ch_num += 1
        stat_city_dict[city_ch] = city_ch_num
        
        # 更新保存的城市个数对应的城市区号
        stat_city_num_name_dict[city_ch+"_"+str(city_ch_num)] = str(city_status_old) + "," + str(city_status)
    
    # 统计个数排序,从大到小
    stat_city_dict = sorted(stat_city_dict.items(), lambda x, y: cmp(x[1], y[1]), reverse=True)
     
    # 打印重复城市的个数
    for (city_ch, num) in stat_city_dict:
        if num <= 1: break  # 只输出城市名称重复的城市名
        
        ## 核心是获取重复城市的三级 省 + 市 + 县
        city_status_array_str = stat_city_num_name_dict[city_ch+"_"+str(num)]
        city_status_array_str = city_status_array_str.strip(",").strip()
        city_status_array = city_status_array_str.split(",")
        city_status_ch_array = []
        for city_status_str in city_status_array:
            # 获取省
            province_status_str = int(city_status_str[0:2] + "0000")
            province_status_ch = CHINA_CITY_DICT.get(province_status_str)
            
            # 获取市
            province_status_str2 = int(city_status_str[0:4] + "00")
            province_status_ch2 = CHINA_CITY_DICT.get(province_status_str2)
            
            # 获取县
            city_status = int(city_status_str)
            city_status_ch = CHINA_CITY_DICT.get(city_status)
            
            # 合并 省 + 市 + 县
            city_add = province_status_ch + "_" + province_status_ch2 + "_" + city_status_ch
            city_status_ch_array.append(city_add)
        
        # 输出结果格式:"3     朝阳     吉林省_长春市_朝阳区, 北京市_市辖区_朝阳区, 辽宁省_朝阳市_朝阳市"
        print num, "   ", city_ch, "   ", ", ".join(city_status_ch_array)

 

米扑项目请详见米扑导航:

https://site.mimvp.com