Python3.4:splinter or traceback

2018-06-18 00:49:26来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

tickts.py:

#tickts.py
#2018-01-22
#python 3.4 Eclipse IDE

from splinter.browser import Browser
from time import sleep
import traceback   
import time
import sys
import requests
import re
import json
from pprint import pprint
from prettytable import PrettyTable
from docopt import docopt
from train import TrainCollection  #train為 train.py 中的class:TrainCollection 的引用
from houcedu import huoche #huocedu為huocedu.py中的class: huoche 的引用
from stations import stations


#pip install traceback2
#pip install linecache2
#pip install splinter   windows xp python 3.4
#pip install PrettyTable
#pip install docopt
#pip install r2
#pip install colorama

# https://github.com/python/cpython/tree/3.6/Lib

  
#b = Browser(driver_name="Chrome")
#url ="https://kyfw.12306.cn/otn/leftTicket/init"
#b = Browser(driver_name="Chrome")
#b.visit(url)     
     


cities= {'成都':'%u6210%u90FD%2CCDW',
'重庆':'%u91CD%u5E86%2CCQW',  
'北京':'%u5317%u4EAC%2CBJP',
'广州':'%u5E7F%u5DDE%2CGZQ', 
'杭州':'%u676D%u5DDE%2CHZH',
'宜昌':'%u5B9C%u660C%2CYCN',
'郑州':'%u90D1%u5DDE%2CZZF',
'深圳':'%u6DF1%u5733%2CSZQ',
'西安':'%u897F%u5B89%2CXAY',
'大连':'%u5927%u8FDE%2CDLT',
'武汉':'%u6B66%u6C49%2CWHN',
'上海':'%u4E0A%u6D77%2CSHH',
'南京':'%u5357%u4EAC%2CNJH',
'合肥':'%u5408%u80A5%2CHFH'}

#if __name__ == '__main__':
huoche=huoche()
print(cities.get('成都'))
huoche.starts=cities.get('成都')
huoche.ends = cities.get('杭州')
huoche.dtime = '2018-01-05'
#huoche.start() #未有權限

#https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-07-01&from_station=SHH&to_station=BJP  拒絕訪問

# pprint: 格式化输出
url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8971'
#获取URL
response = requests.get(url, verify=False)
#正则提取中文字母和代号
stations = re.findall(u'([\u4e00-\u9fa5]+)\|([A-Z]+)', response.text)
# indent:定义打印信息的缩进为4个空格
#pprint(dict(stations), indent=4)


# 拼音輸出
url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8955'
texts = requests.get(url, verify=False)
stations = re.findall(u'([A-Z]+)\|([a-z]+)', texts.text)
stations = dict(stations)
stations = dict(zip(stations.values(), stations.keys()))
#pprint(stations, indent=4)

#
def cli():
    arguments = docopt(__doc__)
    from_staion = stations.get(arguments['<from>'])
    to_station = stations.get(arguments['<to>'])
    date = arguments['<date>']
    # 构建URL
    url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate={}&from_station={}&to_station={}'.format(
        date, from_staion, to_station
    )

def clis():    
    # 添加verify=False参数不验证证书
    r = requests.get(url, verify=False)
    print(r.json())
    
    
def clid():
    arguments = docopt(__doc__)
    from_staion = stations.get(arguments['<from>'])
    to_station = stations.get(arguments['<to>'])
    date = arguments['<date>']
    # 构建URL
    url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate={}&from_station={}&to_station={}'.format(
        date, from_staion, to_station
    )
    r = requests.get(url, verify=False)
    rows = r.json()['data']['datas']
    trains = TrainCollection(rows)
    trains.pretty_print()
  
  
  

  train.py:

#train.py
#2018-01-22


import time
import sys
import requests
import re
from pprint import pprint
from prettytable import PrettyTable


class TrainCollection(object):
    """
    解析列车信息
    """
    # 显示车次、出发/到达站、 出发/到达时间、历时、一等坐、二等坐、软卧、硬卧、硬座
    header = '序号 车次 出发站/到达站 出发时间/到达时间 历时 商务座 一等座 二等座 软卧 硬卧 硬座 无座'.split()
    def __init__(self,rows,traintypes):
        self.rows = rows
        self.traintypes = traintypes

    def _get_duration(self,row):
        """
        获取车次运行的时间
        """
        duration = row.get('lishi').replace(':','小时') + '分'

        if duration.startswith('00'):
            return duration[4:]
        elif duration.startswith('0'):
            return duration[1:]

        return duration

    @property
    def trains(self):
        result = []
        flag = 0
        for row in self.rows:
            if row['station_train_code'][0] in self.traintypes:
                flag += 1
                train = [
                    # 序号
                    flag,
                    # 车次
                    row['station_train_code'],
                    # 出发、到达站点
                    '/'.join([row['from_station_name'],row['to_station_name']]),
                    # 成功、到达时间
                    '/'.join([row['start_time'],row['arrive_time']]),
                    # duration 时间
                    self._get_duration(row),
                    # 商务座
                    row['swz_num'],
                    # 一等座
                    row['zy_num'],
                    # 二等座
                    row['ze_num'],
                    # 软卧
                    row['rw_num'],
                    # 硬卧
                    row['yw_num'],
                    # 硬座
                    row['yz_num'],
                    # 无座
                    row['wz_num']
                ]
                
                result.append(train)

                return result
    
    
    
def print_pretty(self):
        """打印列车信息"""
        pt = PrettyTable()
        pt._set_field_names(self.header)
        for train in self.trains:
            pt.add_row(train)

        print(pt)    

  houcedu.py:

#houcedu.py
#2018-01-22

from splinter.browser import Browser
from time import sleep
import traceback   
import time
import sys
import requests
import re

class huoche(object):
    """docstring for huoche"""
    driver_name=''
    executable_path=''
    #用户名,密码
    username = u"geovindu"
    passwd = u"888888"
    # cookies值得自己去找, 下面两个分别是上海, 太原南
    starts = u"%u4E0A%u6D77%2CSHH"
    ends = u"%u592A%u539F%2CTYV"
    # 时间格式2018-01-19
    dtime = u"2018-01-19"
    # 车次,选择第几趟,0则从上之下依次点击
    order = 0
    ###乘客名
    users = [u"你的名字"]
    ##席位
    xb = u"二等座"
    pz=u"成人票"

    """网址"""
    ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init"
    login_url = "https://kyfw.12306.cn/otn/login/init"
    initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306"
    buy="https://kyfw.12306.cn/otn/confirmPassenger/initDc"
    login_url='https://kyfw.12306.cn/otn/login/init'
    
    def __init__(self):
        self.driver_name='chrome'
        self.executable_path='/usr/local/bin/chromedriver'

    def login(self):
        self.driver.visit(self.login_url)
        # 填充密码
        self.driver.fill("loginUserDTO.user_name", self.username)
        # sleep(1)
        self.driver.fill("userDTO.password", self.passwd)
        print (u"等待验证码,自行输入...")
        while True:
            if self.driver.url != self.initmy_url:
                sleep(1)
            else:
                break

    def start(self):
        self.driver=Browser(driver_name=self.driver_name,executable_path=self.executable_path)
        self.driver.driver.set_window_size(1400, 1000)
        self.login()
        # sleep(1)
        self.driver.visit(self.ticket_url)
        try:
            print (u"购票页面开始...")
            # sleep(1)
            # 加载查询信息
            self.driver.cookies.add({"_jc_save_fromStation": self.starts})
            self.driver.cookies.add({"_jc_save_toStation": self.ends})
            self.driver.cookies.add({"_jc_save_fromDate": self.dtime})

            self.driver.reload()

            count=0
            if self.order!=0:
                while self.driver.url==self.ticket_url:
                    self.driver.find_by_text(u"查询").click()
                    count += 1
                    print (u"循环点击查询... 第 %s 次" % count)
                    # sleep(1)
                    try:
                        self.driver.find_by_text(u"预订")[self.order - 1].click()
                    except Exception as e:
                        print (e)
                        print (u"还没开始预订")
                        continue
            else:
                while self.driver.url == self.ticket_url:
                    self.driver.find_by_text(u"查询").click()
                    count += 1
                    print (u"循环点击查询... 第 %s 次" % count)
                    # sleep(0.8)
                    try:
                        for i in self.driver.find_by_text(u"预订"):
                            i.click()
                            sleep(1)
                    except Exception as e:
                        print (e)
                        print (u"还没开始预订 %s" %count)
                        continue
            print (u"开始预订...")
            # sleep(3)
            # self.driver.reload()
            sleep(1)
            print (u'开始选择用户...')
            for user in self.users:
                self.driver.find_by_text(user).last.click()

            print (u"提交订单...")
            sleep(1)
            # self.driver.find_by_text(self.pz).click()
            # self.driver.find_by_id('').select(self.pz)
            # # sleep(1)
            # self.driver.find_by_text(self.xb).click()
            # sleep(1)
            self.driver.find_by_id('submitOrder_id').click()
            # print u"开始选座..."
            # self.driver.find_by_id('1D').last.click()
            # self.driver.find_by_id('1F').last.click()

            sleep(1.5)
            print (u"确认选座...")
            self.driver.find_by_id('qr_submit_id').click()

        except Exception as e:
            print (e)

  parse_station.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# __Author__: hong
# parse_station.py


import re
import requests
from pprint import pprint


# pprint: 格式化输出
#url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8971'
#获取URL
#response = requests.get(url, verify=False)
#正则提取中文字母和代号
#stations = re.findall(u'([\u4e00-\u9fa5]+)\|([A-Z]+)', response.text)
# indent:定义打印信息的缩进为4个空格
#pprint(dict(stations), indent=4)

url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8955'
texts = requests.get(url, verify=False)
stations = re.findall(r'([A-Z]+)\|([a-z]+)', texts.text)
stations = dict(stations)
stations = dict(zip(stations.values(), stations.keys()))
pprint(stations, indent=4)

  stations.py

#coding=utf-8
# stations.py

import requests
import re
from pprint import pprint


stations={   'abagaqi': 'AQC',
    'acheng': 'ACB',
    'aershan': 'ART',
    'aershanbei': 'ARX',
    'aihe': 'AHP',
    'aijiacun': 'AJJ',
    'ajin': 'AJD',
    'akesu': 'ASR',
    'aketao': 'AER',
    'alashankou': 'AKR',
    'aletai': 'AUR',
    'alihe': 'AHX',
    'alongshan': 'ASX',
    'amuer': 'JTX',
    'ananzhuang': 'AZM',
    'anda': 'ADX',
    'ande': 'ARW',
    'anding': 'ADP',
    'anduo': 'ADO',
    'angangxi': 'AAX',
    'anguang': 'AGT',
    'anhua': 'PKQ',
    'anjia': 'AJB',
    'anjing': 'PYW',
    'ankang': 'AKY',
    'ankouyao': 'AYY',
    'anlong': 'AUZ',
    'anlu': 'ALN',
    'anping': 'APT',
    'anqing': 'AQH',
    'anqingxi': 'APH',
    'anren': 'ARG',
    'anshan': 'AST',
    'anshanxi': 'AXT',
    'anshun': 'ASW',
    'anshunxi': 'ASE',
    'antang': 'ATV',
    'antingbei': 'ASH',
    'antu': 'ATL',
    'antuxi': 'AXL',
    'anxi': 'AXS',
    'anyang': 'AYF',
    'anyangdong': 'ADF',
    'aohan': 'YED',
    'aojiang': 'ARH',
    'aolibugao': 'ALD',
    'atushi': 'ATR',
    'babu': 'BBE',
    'bachu': 'BCR',
    'badaling': 'ILP',
    'badong': 'BNN',
    'bafangshan': 'FGQ',
    'baibiguan': 'BGV',
    'baicheng': 'BCT',
    'baigou': 'FEP',
    'baiguo': 'BGM',
    'baihe': 'BEL',
    'baihedong': 'BIY',
    'baihexian': 'BEY',
    'baijian': 'BAP',
    'baijigou': 'BJJ',
    'baijipo': 'BBM',
    'baikuipu': 'BKB',
    'bailang': 'BAT',
    'bailixia': 'AAP',
    'baimajing': 'BFQ',
    'baiqi': 'BQP',
    'baiquan': 'BQL',
    'baise': 'BIZ',
    'baishanshi': 'HJL',
    'baishapo': 'BPM',
    'baishapu': 'BSN',
    'baishishan': 'BAL',
    'baishuijiang': 'BSY',
    'baishuixian': 'BGY',
    'baishuizhen': 'BUM',
    'baiyangdian': 'FWP',
    'baiyi': 'FHW',
    'baiyinchagan': 'BYC',
    'baiyinhuanan': 'FNC',
    'baiyinhushuo': 'BCD',
    'baiyinshi': 'BNJ',
    'baiyintala': 'BID',
    'baiyinxi': 'BXJ',
    'baiyunebo': 'BEC',
    'bajiaotai': 'BTD',
    'balin': 'BLX',
    'bamiancheng': 'BMD',
    'bamiantong': 'BMB',
    'bancheng': 'BUP',
    'banmaoqing': 'BNM',
    'bantang': 'NGQ',
    'bantian': 'BTQ',
    'baodi': 'BPP',
    'baoding': 'BDP',
    'baodingdong': 'BMP',
    'baohuashan': 'BWH',
    'baoji': 'BJY',
    'baojinan': 'BBY',
    'baokang': 'BKD',
    'baolage': 'BQC',
    'baolin': 'BNB',
    'baolongshan': 'BND',
    'baoqing': 'BUB',
    'baoquanling': 'BQB',
    'baotou': 'BTC',
    'baotoudong': 'FDC',
    'bashan': 'BAY',
    'baxiantong': 'VXD',
    'bayangaole': 'BAC',
    'bayuquan': 'BYT',
    'bazhong': 'IEW',
    'bazhongdong': 'BDE',
    'bazhou': 'RMP',
    'bazhouxi': 'FOP',
    'beian': 'BAB',
    'beibei': 'BPW',
    'beidaihe': 'BEP',
    'beihai': 'BHZ',
    'beijiao': 'IBQ',
    'beijing': 'BJP',
    'beijingbei': 'VAP',
    'beijingdong': 'BOP',
    'beijingnan': 'VNP',
    'beijingxi': 'BXP',
    'beijingzi': 'BRT',
    'beiliu': 'BOZ',
    'beimaquanzi': 'BRP',
    'beipiaonan': 'RPD',
    'beitai': 'BTT',
    'beitun': 'BYP',
    'beitunshi': 'BXR',
    'beiying': 'BIV',
    'beiyinhe': 'BYB',
    'beizhai': 'BVP',
    'bencha': 'FWH',
    'bengbu': 'BBH',
    'bengbunan': 'BMH',
    'benhong': 'BVC',
    'benxi': 'BXT',
    'benxihu': 'BHT',
    'benxixincheng': 'BVT',
    'bijiang': 'BLQ',
    'bijiashan': 'BSB',
    'bijiguan': 'BJM',
    'binhai': 'FHP',
    'binhaibei': 'FCP',
    'binjiang': 'BJB',
    'binxian': 'BXY',
    'binyang': 'UKZ',
    'binzhou': 'BIK',
    'bishan': 'FZW',
    'boao': 'BWQ',
    'bobai': 'BBZ',
    'boketu': 'BKX',
    'bole': 'BOR',
    'boli': 'BLB',
    'botou': 'BZP',
    'boxing': 'BXK',
    'bozhou': 'BZH',
    'buhai': 'BUT',
    'buliekai': 'BLR',
    'caijiagou': 'CJT',
    'caijiapo': 'CJY',
    'caishan': 'CON',
    'cangnan': 'CEH',
    'cangshi': 'CST',
    'cangxi': 'CXE',
    'cangzhou': 'COP',
    'cangzhouxi': 'CBP',
    'caohai': 'WBW',
    'caohekou': 'CKT',
    'caoshi': 'CSL',
    'caoxian': 'CXK',
    'caozili': 'CFP',
    'ceheng': 'CHZ',
    'cenxi': 'CNZ',
    'chabuga': 'CBC',
    'chaganhu': 'VAT',
    'chaigang': 'CGT',
    'chaigoupu': 'CGV',
    'chaihe': 'CHB',
    'chajiang': 'CAM',
    'chaka': 'CVO',
    'chaling': 'CDG',
    'chalingnan': 'CNG',
    'changcheng': 'CEJ',
    'changchong': 'CCM',
    'changchun': 'CCT',
    'changchunnan': 'CET',
    'changchunxi': 'CRT',
    'changde': 'VGQ',
    'changdian': 'CDT',
    'changge': 'CEF',
    'changle': 'CLK',
    'changli': 'CLP',
    'changlingzi': 'CLT',
    'changlinhe': 'FVH',
    'changnong': 'CNJ',
    'changping': 'DAQ',
    'changpingbei': 'VBP',
    'changpingdong': 'FQQ',
    'changpingnan': 'FPQ',
    'changpoling': 'CPM',
    'changqingqiao': 'CQJ',
    'changsha': 'CSQ',
    'changshan': 'CSU',
    'changshanan': 'CWQ',
    'changshantun': 'CVT',
    'changshaxi': 'RXQ',
    'changshou': 'EFW',
    'changshoubei': 'COW',
    'changshouhu': 'CSE',
    'changting': 'CES',
    'changtingnan': 'CNS',
    'changtingzhen': 'CDB',
    'changtu': 'CTT',
    'changtuxi': 'CPT',
    'changwu': 'CWY',
    'changxing': 'CBH',
    'changxingnan': 'CFH',
    'changyang': 'CYN',
    'changyuan': 'CYF',
    'changzheng': 'CZJ',
    'changzhi': 'CZF',
    'changzhibei': 'CBF',
    'changzhou': 'CZH',
    'changzhoubei': 'ESH',
    'changzhuang': 'CVK',
    'chaohu': 'CIH',
    'chaohudong': 'GUH',
    'chaolianggou': 'CYP',
    'chaoshan': 'CBQ',
    'chaotian': 'CTE',
    'chaoyang': 'CNQ',
    'chaoyangchuan': 'CYL',
    'chaoyangdi': 'CDD',
    'chaoyangnan': 'CYD',
    'chaoyangzhen': 'CZL',
    'chaozhou': 'CKQ',
    'chasuqi': 'CSC',
    'chengcheng': 'CUY',
    'chengde': 'CDP',
    'chengdedong': 'CCP',
    'chengdu': 'CDW',
    'chengdudong': 'ICW',
    'chengdunan': 'CNW',
    'chenggaozi': 'CZB',
    'chenggu': 'CGY',
    'chenggubei': 'CBY',
    'chengjisihan': 'CJX',
    'chenguanying': 'CAJ',
    'chengyang': 'CEK',
    'chengzitan': 'CWT',
    'chenming': 'CMB',
    'chenqing': 'CQB',
    'chenxi': 'CXQ',
    'chenxiangtun': 'CXT',
    'chenzhou': 'CZQ',
    'chenzhouxi': 'ICQ',
    'chezhuanwan': 'CWM',
    'chibi': 'CBN',
    'chibibei': 'CIN',
    'chifeng': 'CFD',
    'chifengxi': 'CID',
    'chizhou': 'IYH',
    'chongqing': 'CQW',
    'chongqingbei': 'CUW',
    'chongqingnan': 'CRW',
    'chongqingxi': 'CXW',
    'chongren': 'CRG',
    'chongzuo': 'CZZ',
    'chuangyecun': 'CEX',
    'chunwan': 'CQQ',
    'chunyang': 'CAL',
    'chushan': 'CSB',
    'chuxiongnan': 'COM',
    'chuzhou': 'CXH',
    'chuzhoubei': 'CUH',
    'cili': 'CUQ',
    'cishan': 'CSP',
    'cixi': 'CRP',
    'cixian': 'CIP',
    'ciyao': 'CYK',
    'congjiang': 'KNW',
    'cuihuangkou': 'CHP',
    'cuogang': 'CAX',
    'daan': 'RAT',
    'daanbei': 'RNT',
    'daba': 'DBJ',
    'daban': 'DBC',
    'dachaigou': 'DGJ',
    'dacheng': 'DCT',
    'dadenggou': 'DKJ',
    'dafangnan': 'DNE',
    'dafeng': 'KRQ',
    'daguan': 'RGW',
    'daguantun': 'DTT',
    'dagushan': 'RMT',
    'dahongqi': 'DQD',
    'dahuichang': 'DHP',
    'dahushan': 'DHD',
    'dailing': 'DLB',
    'daixian': 'DKV',
    'daiyue': 'RYV',
    'dajiagou': 'DJT',
    'dajian': 'DFP',
    'daju': 'DIM',
    'dakoutun': 'DKP',
    'dalangzhen': 'KOQ',
    'dalateqi': 'DIC',
    'dalatexi': 'DNC',
    'dali': 'DKM',
    'dalian': 'DLT',
    'dalianbei': 'DFT',
    'dalianxi': 'GZT',
    'dalin': 'DLD',
    'daluhao': 'DLC',
    'dandong': 'DUT',
    'dandongxi': 'RWT',
    'danfeng': 'DGY',
    'dangshan': 'DKH',
    'dangshannan': 'PRH',
    'dangtudong': 'OWH',
    'dangyang': 'DYN',
    'dani': 'DNZ',
    'dantu': 'RUH',
    'danxiashan': 'IRQ',
    'danyang': 'DYH',
    'danyangbei': 'EXH',
    'daobao': 'RBT',
    'daoerdeng': 'DRD',
    'daojiao': 'RRQ',
    'daoqing': 'DML',
    'daozhou': 'DFZ',
    'dapanshi': 'RPP',
    'dapingfang': 'DPD',
    'dapu': 'DPI',
    'daqilaha': 'DQX',
    'daqing': 'DZX',
    'daqingdong': 'LFX',
    'daqinggou': 'DSD',
    'daqingxi': 'RHX',
    'dashiqiao': 'DQT',
    'dashitou': 'DSL',
    'dashitounan': 'DAL',
    'dashizhai': 'RZT',
    'datianbian': 'DBM',
    'datong': 'DTV',
    'datongxi': 'DTO',
    'datun': 'DNT',
    'dawang': 'WWQ',
    'dawangtan': 'DZZ',
    'dawanzi': 'DFM',
    'dawukou': 'DFJ',
    'daxing': 'DXX',
    'daxinggou': 'DXL',
    'dayan': 'DYX',
    'dayangshu': 'DUX',
    'dayebei': 'DBN',
    'daying': 'DYV',
    'dayingdong': 'IAW',
    'dayingzhen': 'DJP',
    'dayingzi': 'DZD',
    'dayu': 'DYG',
    'dayuan': 'DYZ',
    'dazhanchang': 'DTJ',
    'dazhangzi': 'DAP',
    'dazhou': 'RXW',
    'dazhuyuan': 'DZY',
    'dazunan': 'FQW',
    'dean': 'DAG',
    'debao': 'RBZ',
    'debosi': 'RDT',
    'dechang': 'DVW',
    'deerbuer': 'DRX',
    'dehui': 'DHT',
    'dehuixi': 'DXT',
    'delingha': 'DHO',
    'dengshahe': 'DWT',
    'dengta': 'DGT',
    'dengzhou': 'DOF',
    'deqing': 'DRH',
    'deqingxi': 'MOH',
    'dexing': 'DWG',
    'dexingdong': 'DDG',
    'deyang': 'DYW',
    'dezhou': 'DZP',
    'dezhoudong': 'DIP',
    'dianjiang': 'DJE',
    'dianxin': 'DXM',
    'didao': 'DDB',
    'dingbian': 'DYJ',
    'dinghudong': 'UWQ',
    'dinghushan': 'NVQ',
    'dingnan': 'DNG',
    'dingtao': 'DQK',
    'dingxi': 'DSJ',
    'dingxiang': 'DXV',
    'dingxibei': 'DNJ',
    'dingyuan': 'EWH',
    'dingzhou': 'DXP',
    'dingzhoudong': 'DOP',
    'diwopu': 'DWJ',
    'dizhuang': 'DVQ',
    'dongandong': 'DCZ',
    'dongbianjing': 'DBB',
    'dongcha': 'DCJ',
    'dongchengnan': 'IYQ',
    'dongdaihe': 'RDD',
    'dongerdaohe': 'DRB',
    'dongfang': 'UFQ',
    'dongfanghong': 'DFB',
    'dongfeng': 'DIL',
    'donggangbei': 'RGT',
    'dongguan': 'RTQ',
    'dongguandong': 'DMQ',
    'dongguang': 'DGP',
    'donghai': 'DHB',
    'donghaixian': 'DQH',
    'dongjin': 'DKB',
    'dongjing': 'FWQ',
    'dongjingcheng': 'DJB',
    'donglai': 'RVD',
    'dongmiaohe': 'DEP',
    'dongmingcun': 'DMD',
    'dongmingxian': 'DNF',
    'dongsheng': 'DOC',
    'dongshengxi': 'DYC',
    'dongtai': 'DBH',
    'dongtonghua': 'DTL',
    'dongwan': 'DRJ',
    'dongxiang': 'DXG',
    'dongxinzhuang': 'DXD',
    'dongxu': 'RXP',
    'dongying': 'DPK',
    'dongyingnan': 'DOK',
    'dongyudi': 'DBV',
    'dongzhen': 'DNV',
    'dongzhi': 'DCH',
    'dongzhuang': 'DZV',
    'douluo': 'DLV',
    'douzhangzhuang': 'RZP',
    'douzhuang': 'ROP',
    'duanzhou': 'WZQ',
    'duchang': 'DCG',
    'duge': 'DMM',
    'duiqingshan': 'DQB',
    'duizhen': 'DWV',
    'dujia': 'DJL',
    'dujiangyan': 'DDW',
    'dulitun': 'DTX',
    'dunhua': 'DHL',
    'dunhuang': 'DHJ',
    'dushan': 'RWW',
    'dushupu': 'DPM',
    'duyun': 'RYW',
    'duyundong': 'KJW',
    'ebian': 'EBW',
    'eerduosi': 'EEC',
    'ejina': 'EJC',
    'emei': 'EMW',
    'emeishan': 'IXW',
    'enshi': 'ESN',
    'epanggong': 'EGY',
    'erdaogoumen': 'RDP',
    'erdaowan': 'RDX',
    'erlian': 'RLC',
    'erlong': 'RLD',
    'erlongshantun': 'ELA',
    'ermihe': 'RML',
    'erying': 'RYJ',
    'ezhou': 'ECN',
    'ezhoudong': 'EFN',
    'faer': 'FEM',
    'fanchangxi': 'PUH',
    'fangchenggangbei': 'FBZ',
    'fanjiatun': 'FTT',
    'fanshi': 'FSV',
    'fanzhen': 'VZK',
    'faqi': 'FQE',
    'feidong': 'FIH',
    'feixian': 'FXK',
    'fengcheng': 'FCG',
    'fengchengdong': 'FDT',
    'fengchengnan': 'FNG',
    'fengdu': 'FUW',
    'fenghua': 'FHH',
    'fenghuangcheng': 'FHT',
    'fenghuangjichang': 'FJQ',
    'fenglezhen': 'FZB',
    'fenglin': 'FLN',
    'fenglingdu': 'FLV',
    'fengshuicun': 'FSJ',
    'fengshun': 'FUQ',
    'fengtun': 'FTX',
    'fengxian': 'FXY',
    'fengyang': 'FUH',
    'fengzhen': 'FZC',
    'fengzhou': 'FZY',
    'fenhe': 'FEV',
    'fenyang': 'FAV',
    'fenyi': 'FYG',
    'foping': 'FUY',
    'foshan': 'FSQ',
    'foshanxi': 'FOQ',
    'fuan': 'FAS',
    'fuchuan': 'FDZ',
    'fuding': 'FES',
    'fuhai': 'FHR',
    'fujin': 'FIB',
    'fulaerji': 'FRX',
    'fuling': 'FLW',
    'fulingbei': 'FEW',
    'fuliqu': 'FLJ',
    'fulitun': 'FTB',
    'funan': 'FNH',
    'funing': 'FNP',
    'fuqing': 'FQS',
    'fuquan': 'VMW',
    'furongnan': 'KCQ',
    'fushankou': 'FKP',
    'fushanzhen': 'FZQ',
    'fusheng': 'FAW',
    'fushun': 'FST',
    'fushunbei': 'FET',
    'fusong': 'FSL',
    'fusui': 'FSZ',
    'futian': 'NZQ',
    'futuyu': 'FYP',
    'fuxian': 'FEY',
    'fuxiandong': 'FDY',
    'fuxinnan': 'FXD',
    'fuyang': 'FYH',
    'fuyu': 'FYT',
    'fuyuan': 'FYM',
    'fuyuanbei': 'FBM',
    'fuyubei': 'FBT',
    'fuzhou': 'FZS',
    'fuzhoubei': 'FBG',
    'fuzhoudong': 'FDG',
    'fuzhounan': 'FYS',
    'gaizhou': 'GXT',
    'gaizhouxi': 'GAT',
    'gancaodian': 'GDJ',
    'gangou': 'GGL',
    'gangu': 'GGJ',
    'ganhe': 'GAX',
    'ganluo': 'VOW',
    'ganqika': 'GQD',
    'ganquan': 'GQY',
    'ganquanbei': 'GEY',
    'ganshui': 'GSW',
    'ganshuidong': 'GDE',
    'gantang': 'GNJ',
    'ganzhou': 'GZG',
    'gaoan': 'GCG',
    'gaobeidian': 'GBP',
    'gaobeidiandong': 'GMP',
    'gaocheng': 'GEP',
    'gaochengnan': 'GUP',
    'gaocun': 'GCV',
    'gaogezhuang': 'GGP',
    'gaohua': 'HGD',
    'gaolan': 'GEJ',
    'gaoloufang': 'GFM',
    'gaomi': 'GMK',
    'gaoping': 'GPF',
    'gaoqiaozhen': 'GZD',
    'gaoshanzi': 'GSD',
    'gaotai': 'GTJ',
    'gaotainan': 'GAJ',
    'gaotan': 'GAY',
    'gaoyi': 'GIP',
    'gaoyixi': 'GNP',
    'gaozhou': 'GSQ',
    'gashidianzi': 'GXD',
    'gediannan': 'GNN',
    'geermu': 'GRO',
    'gegenmiao': 'GGT',
    'geju': 'GEM',
    'genhe': 'GEX',
    'gongcheng': 'GCZ',
    'gongmiaozi': 'GMC',
    'gongnonghu': 'GRT',
    'gongpengzi': 'GPT',
    'gongqingcheng': 'GAG',
    'gongyi': 'GXF',
    'gongyinan': 'GYF',
    'gongyingzi': 'GYD',
    'gongzhuling': 'GLT',
    'gongzhulingnan': 'GBT',
    'goubangzi': 'GBD',
    'guan': 'GFP',
    'guangan': 'VJW',
    'guangannan': 'VUW',
    'guangao': 'GVP',
    'guangde': 'GRH',
    'guanghan': 'GHW',
    'guanghanbei': 'GVW',
    'guangmingcheng': 'IMQ',
    'guangnanwei': 'GNM',
    'guangnanxian': 'GXM',
    'guangning': 'FBQ',
    'guangningsi': 'GQT',
    'guangningsinan': 'GNT',
    'guangshan': 'GUN',
    'guangshui': 'GSN',
    'guangtongbei': 'GPM',
    'guangyuan': 'GYW',
    'guangyuannan': 'GAW',
    'guangze': 'GZS',
    'guangzhou': 'GZQ',
    'guangzhoubei': 'GBQ',
    'guangzhoudong': 'GGQ',
    'guangzhounan': 'IZQ',
    'guangzhouxi': 'GXQ',
    'guanlin': 'GLF',
    'guanling': 'GLE',
    'guanshaling': 'FKQ',
    'guanshui': 'GST',
    'guanting': 'GTP',
    'guantingxi': 'KEP',
    'guanzhaishan': 'GSS',
    'guanzijing': 'GOT',
    'guazhou': 'GZJ',
    'gucheng': 'GCN',
    'guchengzhen': 'GZB',
    'gudong': 'GDV',
    'guian': 'GAE',
    'guiding': 'GTW',
    'guidingbei': 'FMW',
    'guidingnan': 'IDW',
    'guidingxian': 'KIW',
    'guigang': 'GGZ',
    'guilin': 'GLZ',
    'guilinbei': 'GBZ',
    'guilinxi': 'GEZ',
    'guiliuhe': 'GHT',
    'guiping': 'GAZ',
    'guixi': 'GXG',
    'guiyang': 'GIW',
    'guiyangbei': 'KQW',
    'guiyangdong': 'KEW',
    'gujiao': 'GJV',
    'gujiazi': 'GKT',
    'gulang': 'GLJ',
    'gulian': 'GRX',
    'guojiadian': 'GDT',
    'guoleizhuang': 'GLP',
    'guosong': 'GSL',
    'guoyang': 'GYH',
    'guozhen': 'GZY',
    'gushan': 'FFQ',
    'gushankou': 'GSP',
    'gushi': 'GXN',
    'gutian': 'GTS',
    'gutianbei': 'GBS',
    'gutianhuizhi': 'STS',
    'guyuan': 'GYL',
    'guzhen': 'GNQ',
    'hadapu': 'HDJ',
    'haerbin': 'HBB',
    'haerbinbei': 'HTB',
    'haerbindong': 'VBB',
    'haerbinxi': 'VAB',
    'haianxian': 'HIH',
    'haibei': 'HEB',
    'haicheng': 'HCT',
    'haichengxi': 'HXT',
    'haidongxi': 'HDO',
    'haikou': 'VUQ',
    'haikoudong': 'HMQ',
    'hailaer': 'HRX',
    'hailin': 'HRB',
    'hailong': 'HIL',
    'hailun': 'HLB',
    'haining': 'HNH',
    'hainingxi': 'EUH',
    'haishiwan': 'HSO',
    'haituozi': 'HZT',
    'haiwan': 'RWH',
    'haiyang': 'HYK',
    'haiyangbei': 'HEK',
    'halahai': 'HIT',
    'halasu': 'HAX',
    'hami': 'HMR',
    'hancheng': 'HCY',
    'hanchuan': 'HCN',
    'hanconggou': 'HKB',
    'handan': 'HDP',
    'handandong': 'HPP',
    'hanfuwan': 'HXJ',
    'hangjinhouqi': 'HDC',
    'hangu': 'HGP',
    'hangzhou': 'HZH',
    'hangzhoudong': 'HGH',
    'hangzhounan': 'XHH',
    'hanjiang': 'HJS',
    'hankou': 'HKN',
    'hanling': 'HAT',
    'hanmaying': 'HYP',
    'hanshou': 'VSQ',
    'hanyin': 'HQY',
    'hanyuan': 'WHW',
    'hanzhong': 'HOY',
    'haolianghe': 'HHB',
    'hebei': 'HMB',
    'hebi': 'HAF',
    'hebian': 'HBV',
    'hebidong': 'HFF',
    'hechuan': 'WKW',
    'hechun': 'HCZ',
    'hefei': 'HFH',
    'hefeibeicheng': 'COH',
    'hefeinan': 'ENH',
    'hefeixi': 'HTH',
    'hegang': 'HGB',
    'heichongtan': 'HCJ',
    'heihe': 'HJB',
    'heijing': 'HIM',
    'heishui': 'HOT',
    'heitai': 'HQB',
    'heiwang': 'HWK',
    'hejiadian': 'HJJ',
    'hejianxi': 'HXP',
    'hejin': 'HJV',
    'hejing': 'HJR',
    'hekoubei': 'HBM',
    'hekounan': 'HKJ',
    'heli': 'HOB',
    'helong': 'HLL',
    'hengdaohezi': 'HDB',
    'hengfeng': 'HFG',
    'henggouqiaodong': 'HNN',
    'hengnan': 'HNG',
    'hengshan': 'HSQ',
    'hengshanxi': 'HEQ',
    'hengshui': 'HSP',
    'hengshuibei': 'IHP',
    'hengyang': 'HYQ',
    'hengyangdong': 'HVQ',
    'heping': 'VAQ',
    'hepu': 'HVZ',
    'heqing': 'HQM',
    'heshengqiaodong': 'HLN',
    'heshituoluogai': 'VSR',
    'heshuo': 'VUR',
    'hetang': 'KXQ',
    'hetian': 'VTR',
    'heyang': 'HAY',
    'heyangbei': 'HTY',
    'heyuan': 'VIQ',
    'heze': 'HIK',
    'hezhou': 'HXZ',
    'hongan': 'HWN',
    'honganxi': 'VXN',
    'hongguangzhen': 'IGW',
    'hongguo': 'HEM',
    'honghe': 'HPB',
    'honghuagou': 'VHD',
    'hongjiang': 'HFM',
    'hongqing': 'HEY',
    'hongshan': 'VSB',
    'hongshaxian': 'VSJ',
    'hongsipu': 'HSJ',
    'hongtong': 'HDV',
    'hongtongxi': 'HTV',
    'hongxiantai': 'HTJ',
    'hongxing': 'VXB',
    'hongxinglong': 'VHB',
    'hongyan': 'VIX',
    'houhu': 'IHN',
    'houma': 'HMV',
    'houmaxi': 'HPV',
    'houmen': 'KMQ',
    'huacheng': 'VCQ',
    'huade': 'HGC',
    'huahu': 'KHN',
    'huaian': 'AUH',
    'huaiannan': 'AMH',
    'huaibei': 'HRH',
    'huaibeibei': 'PLH',
    'huaibin': 'HVN',
    'huaihua': 'HHQ',
    'huaihuanan': 'KAQ',
    'huaiji': 'FAQ',
    'huainan': 'HAH',
    'huainandong': 'HOH',
    'huairen': 'HRV',
    'huairendong': 'HFV',
    'huairou': 'HRP',
    'huairoubei': 'HBP',
    'huaiyin': 'IYN',
    'huajia': 'HJT',
    'huajiazhuang': 'HJM',
    'hualin': 'HIB',
    'huanan': 'HNB',
    'huangbai': 'HBL',
    'huangchuan': 'KCN',
    'huangcun': 'HCP',
    'huanggang': 'KGN',
    'huanggangdong': 'KAN',
    'huanggangxi': 'KXN',
    'huangguayuan': 'HYM',
    'huanggutun': 'HTT',
    'huanghejingqu': 'HCF',
    'huanghuatong': 'HUD',
    'huangkou': 'KOH',
    'huangling': 'ULY',
    'huanglingnan': 'VLY',
    'huangliu': 'KLQ',
    'huangmei': 'VEH',
    'huangnihe': 'HHL',
    'huangshan': 'HKH',
    'huangshanbei': 'NYH',
    'huangshi': 'HSN',
    'huangshibei': 'KSN',
    'huangshidong': 'OSN',
    'huangsongdian': 'HDL',
    'huangtudian': 'HKP',
    'huangyangtan': 'HGJ',
    'huangyangzhen': 'HYJ',
    'huangyuan': 'HNO',
    'huangzhou': 'VON',
    'huantai': 'VTK',
    'huanxintian': 'VTB',
    'huapengzi': 'HZM',
    'huaqiao': 'VQH',
    'huarong': 'HRN',
    'huarongdong': 'HPN',
    'huarongnan': 'KRN',
    'huashan': 'HSY',
    'huashanbei': 'HDY',
    'huashannan': 'KNN',
    'huaying': 'HUW',
    'huayuan': 'HUN',
    'huayuankou': 'HYT',
    'huazhou': 'HZZ',
    'huhehaote': 'HHC',
    'huhehaotedong': 'NDC',
    'huian': 'HNS',
    'huichangbei': 'XEG',
    'huidong': 'KDQ',
    'huihuan': 'KHQ',
    'huinong': 'HMJ',
    'huishan': 'VCH',
    'huitong': 'VTQ',
    'huixian': 'HYY',
    'huizhou': 'HCQ',
    'huizhounan': 'KNQ',
    'huizhouxi': 'VXQ',
    'hukou': 'HKG',
    'hulan': 'HUB',
    'hulin': 'VLB',
    'huludao': 'HLD',
    'huludaobei': 'HPD',
    'hulusitai': 'VTJ',
    'humen': 'IUQ',
    'hunchun': 'HUL',
    'hunhe': 'HHT',
    'huocheng': 'SER',
    'huoerguosi': 'HFR',
    'huojia': 'HJF',
    'huolianzhai': 'HLT',
    'huolinguole': 'HWD',
    'huoqiu': 'FBH',
    'huozhou': 'HZV',
    'huozhoudong': 'HWV',
    'hushiha': 'HHP',
    'hushitai': 'HUT',
    'huyi': 'KXY',
    'huzhou': 'VZH',
    'jiafeng': 'JFF',
    'jiagedaqi': 'JGX',
    'jialuhe': 'JLF',
    'jiamusi': 'JMB',
    'jian': 'VAG',
    'jianan': 'JUL',
    'jianchang': 'JFD',
    'jianfeng': 'PFQ',
    'jiangbiancun': 'JBG',
    'jiangdu': 'UDH',
    'jianghua': 'JHZ',
    'jiangjia': 'JJB',
    'jiangjin': 'JJW',
    'jiangle': 'JLS',
    'jiangmendong': 'JWQ',
    'jiangning': 'JJH',
    'jiangningxi': 'OKH',
    'jiangqiao': 'JQX',
    'jiangshan': 'JUH',
    'jiangsuotian': 'JOM',
    'jiangyan': 'UEH',
    'jiangyong': 'JYZ',
    'jiangyou': 'JFW',
    'jiangyoubei': 'JBE',
    'jiangyuan': 'SZL',
    'jianhu': 'AJH',
    'jianmenguan': 'JME',
    'jianningxianbei': 'JCS',
    'jianou': 'JVS',
    'jianouxi': 'JUS',
    'jiansanjiang': 'JIB',
    'jianshan': 'JPQ',
    'jianshe': 'JET',
    'jianshi': 'JRN',
    'jianshui': 'JSM',
    'jianyang': 'JYW',
    'jianyangnan': 'JOW',
    'jiaocheng': 'JNV',
    'jiaohe': 'JHL',
    'jiaohexi': 'JOL',
    'jiaomei': 'JES',
    'jiaozhou': 'JXK',
    'jiaozhoubei': 'JZK',
    'jiaozuo': 'JOF',
    'jiaozuodong': 'WEF',
    'jiashan': 'JOP',
    'jiashannan': 'EAH',
    'jiaxiang': 'JUK',
    'jiaxing': 'JXH',
    'jiaxingnan': 'EPH',
    'jiaxinzi': 'JXT',
    'jiayuguan': 'JGJ',
    'jiayuguannan': 'JBJ',
    'jidong': 'JOB',
    'jieshoushi': 'JUN',
    'jiexiu': 'JXV',
    'jiexiudong': 'JDV',
    'jieyang': 'JRQ',
    'jiguanshan': 'JST',
    'jijiagou': 'VJD',
    'jilin': 'JLL',
    'jiling': 'JLJ',
    'jimobei': 'JVK',
    'jinan': 'JNK',
    'jinandong': 'JAK',
    'jinanxi': 'JGK',
    'jinbaotun': 'JBD',
    'jinchang': 'JCJ',
    'jincheng': 'JCF',
    'jinchengbei': 'JEF',
    'jinchengjiang': 'JJZ',
    'jingbian': 'JIY',
    'jingchuan': 'JAJ',
    'jingde': 'NSH',
    'jingdezhen': 'JCG',
    'jingdezhenbei': 'JDG',
    'jingdian': 'JFP',
    'jinggangshan': 'JGG',
    'jinghai': 'JHP',
    'jinghe': 'JHR',
    'jinghenan': 'JIR',
    'jingmen': 'JMN',
    'jingnan': 'JNP',
    'jingoutun': 'VGP',
    'jingpeng': 'JPC',
    'jingshan': 'JCN',
    'jingtai': 'JTJ',
    'jingtieshan': 'JVJ',
    'jingxi': 'JMZ',
    'jingxian': 'LOH',
    'jingxing': 'JJP',
    'jingyu': 'JYL',
    'jingyuan': 'JYJ',
    'jingyuanxi': 'JXJ',
    'jingzhou': 'JEQ',
    'jinhai': 'JHD',
    'jinhe': 'JHX',
    'jinhua': 'JBH',
    'jinhuanan': 'RNH',
    'jining': 'JIK',
    'jiningnan': 'JAC',
    'jinjiang': 'JJS',
    'jinjie': 'JEY',
    'jinkeng': 'JKT',
    'jinmacun': 'JMM',
    'jinshanbei': 'EGH',
    'jinshantun': 'JTB',
    'jinxian': 'JUG',
    'jinxiannan': 'JXG',
    'jinyintan': 'JTN',
    'jinyuewan': 'PYQ',
    'jinyun': 'JYH',
    'jinyunxi': 'PYH',
    'jinzhai': 'JZH',
    'jinzhangzi': 'JYD',
    'jinzhong': 'JZV',
    'jinzhou': 'JXP',
    'jinzhounan': 'JOD',
    'jishan': 'JVV',
    'jishou': 'JIQ',
    'jishu': 'JSL',
    'jiujiang': 'JJG',
    'jiulangshan': 'KJQ',
    'jiuquan': 'JQJ',
    'jiuquannan': 'JNJ',
    'jiusan': 'SSX',
    'jiutai': 'JTL',
    'jiutainan': 'JNL',
    'jiuzhuangwo': 'JVP',
    'jiwen': 'JWX',
    'jixi': 'JXB',
    'jixibei': 'NRH',
    'jixixian': 'JRH',
    'jiyuan': 'JYF',
    'jizhou': 'JKP',
    'juancheng': 'JCK',
    'jubao': 'JRT',
    'junan': 'JOK',
    'junde': 'JDB',
    'junliangchengbei': 'JMP',
    'jurongxi': 'JWH',
    'juxian': 'JKK',
    'juye': 'JYK',
    'kaian': 'KAT',
    'kaifeng': 'KFF',
    'kaifengbei': 'KBF',
    'kaifusi': 'FLQ',
    'kaihua': 'KHU',
    'kaijiang': 'KAW',
    'kaili': 'KLW',
    'kailinan': 'QKW',
    'kailu': 'KLC',
    'kaitong': 'KTT',
    'kaiyang': 'KVW',
    'kaiyuan': 'KYT',
    'kaiyuanxi': 'KXT',
    'kalaqi': 'KQX',
    'kangcheng': 'KCP',
    'kangjinjing': 'KJB',
    'kangxiling': 'KXZ',
    'kangzhuang': 'KZP',
    'kashi': 'KSR',
    'kedong': 'KOB',
    'kelamayi': 'KHR',
    'kelan': 'KLV',
    'keshan': 'KSB',
    'keyihe': 'KHX',
    'kouqian': 'KQL',
    'kuandian': 'KDT',
    'kuche': 'KCR',
    'kuduer': 'KDX',
    'kuerle': 'KLR',
    'kuishan': 'KAB',
    'kuitan': 'KTQ',
    'kuitun': 'KTR',
    'kulun': 'KLD',
    'kundulunzhao': 'KDC',
    'kunming': 'KMM',
    'kunmingnan': 'KOM',
    'kunmingxi': 'KXM',
    'kunshan': 'KSH',
    'kunshannan': 'KNH',
    'kunyang': 'KAM',
    'lagu': 'LGB',
    'laha': 'LHX',
    'laibin': 'UBZ',
    'laibinbei': 'UCZ',
    'laituan': 'LVZ',
    'laiwudong': 'LWK',
    'laiwuxi': 'UXK',
    'laixi': 'LXK',
    'laixibei': 'LBK',
    'laiyang': 'LYK',
    'laiyuan': 'LYP',
    'laizhou': 'LZS',
    'lalin': 'LAB',
    'lamadian': 'LMX',
    'lancun': 'LCK',
    'langang': 'LNB',
    'langfang': 'LJP',
    'langfangbei': 'LFP',
    'langweishan': 'LRJ',
    'langxiang': 'LXB',
    'langzhong': 'LZE',
    'lankao': 'LKF',
    'lankaonan': 'LUF',
    'lanling': 'LLB',
    'lanlingbei': 'COK',
    'lanxi': 'LWH',
    'lanzhou': 'LZJ',
    'lanzhoudong': 'LVJ',
    'lanzhouxi': 'LAJ',
    'lanzhouxinqu': 'LQJ',
    'laobian': 'LLT',
    'laochengzhen': 'ACQ',
    'laofu': 'UFD',
    'laolai': 'LAX',
    'laoying': 'LXL',
    'lasa': 'LSO',
    'lazha': 'LEM',
    'lechang': 'LCQ',
    'lechangdong': 'ILQ',
    'ledong': 'UQQ',
    'ledu': 'LDO',
    'ledunan': 'LVO',
    'leiyang': 'LYQ',
    'leiyangxi': 'LPQ',
    'leizhou': 'UAQ',
    'lengshuijiangdong': 'UDQ',
    'lepingshi': 'LPG',
    'leshan': 'IVW',
    'leshanbei': 'UTW',
    'leshancun': 'LUM',
    'liangdang': 'LDY',
    'liangdixia': 'LDP',
    'lianggezhuang': 'LGP',
    'liangjia': 'UJT',
    'liangjiadian': 'LRT',
    'liangping': 'UQW',
    'liangpingnan': 'LPE',
    'liangshan': 'LMK',
    'lianjiang': 'LJZ',
    'lianjiangkou': 'LHB',
    'lianshanguan': 'LGT',
    'lianyuan': 'LAQ',
    'lianyungang': 'UIH',
    'lianyungangdong': 'UKH',
    'liaobu': 'LTQ',
    'liaocheng': 'UCK',
    'liaoyang': 'LYT',
    'liaoyuan': 'LYL',
    'liaozhong': 'LZD',
    'licheng': 'UCP',
    'lichuan': 'LCN',
    'liduigongyuan': 'INW',
    'lijia': 'LJB',
    'lijiang': 'LHM',
    'lijiaping': 'LIJ',
    'lijinnan': 'LNK',
    'lilinbei': 'KBQ',
    'liling': 'LLG',
    'lilingdong': 'UKQ',
    'limudian': 'LMB',
    'lincheng': 'UUP',
    'linchuan': 'LCG',
    'lindong': 'LRC',
    'linfen': 'LFV',
    'linfenxi': 'LXV',
    'lingaonan': 'KGQ',
    'lingbao': 'LBF',
    'lingbaoxi': 'LPF',
    'lingbi': 'GMH',
    'lingcheng': 'LGK',
    'linghai': 'JID',
    'lingling': 'UWZ',
    'lingqiu': 'LVV',
    'lingshi': 'LSV',
    'lingshidong': 'UDV',
    'lingshui': 'LIQ',
    'lingwu': 'LNJ',
    'lingyuan': 'LYD',
    'lingyuandong': 'LDD',
    'linhai': 'UFH',
    'linhe': 'LHC',
    'linjialou': 'ULK',
    'linjiang': 'LQL',
    'linkou': 'LKB',
    'linli': 'LWQ',
    'linqing': 'UQK',
    'linshengpu': 'LBT',
    'linxi': 'LXC',
    'linxiang': 'LXQ',
    'linyi': 'LUK',
    'linyibei': 'UYK',
    'linying': 'LNF',
    'linyuan': 'LYX',
    'linze': 'LEJ',
    'linzenan': 'LDJ',
    'liquan': 'LGY',
    'lishizhai': 'LET',
    'lishui': 'USH',
    'lishuzhen': 'LSB',
    'litang': 'LTZ',
    'liudaohezi': 'LVP',
    'liuhe': 'LNL',
    'liuhezhen': 'LEX',
    'liujiadian': 'UDT',
    'liujiahe': 'LVT',
    'liujiang': 'UQZ',
    'liulinnan': 'LKV',
    'liupanshan': 'UPJ',
    'liupanshui': 'UMW',
    'liushuigou': 'USP',
    'liushutun': 'LSD',
    'liuyuan': 'DHR',
    'liuyuannan': 'LNR',
    'liuzhi': 'LIW',
    'liuzhou': 'LZZ',
    'liwang': 'VLJ',
    'lixian': 'LEQ',
    'liyang': 'LEH',
    'lizhi': 'LZX',
    'longandong': 'IDZ',
    'longchang': 'LCW',
    'longchangbei': 'NWW',
    'longchuan': 'LUQ',
    'longdongbao': 'FVW',
    'longfeng': 'KFQ',
    'longgou': 'LGJ',
    'longgudian': 'LGM',
    'longhua': 'LHP',
    'longjia': 'UJL',
    'longjiang': 'LJX',
    'longjing': 'LJL',
    'longkoushi': 'UKK',
    'longli': 'LLW',
    'longlibei': 'KFW',
    'longnan': 'INJ',
    'longquansi': 'UQJ',
    'longshanzhen': 'LAS',
    'longshi': 'LAG',
    'longtangba': 'LBM',
    'longxi': 'LXJ',
    'longxian': 'LXY',
    'longyan': 'LYS',
    'longyou': 'LMH',
    'longzhen': 'LZA',
    'longzhuagou': 'LZT',
    'loudi': 'LDQ',
    'loudinan': 'UOQ',
    'loushanguannan': 'LSE',
    'luan': 'UAH',
    'luanhe': 'UDP',
    'luanheyan': 'UNP',
    'luanping': 'UPP',
    'luanxian': 'UXP',
    'luchaogang': 'UCH',
    'lucheng': 'UTP',
    'luchuan': 'LKZ',
    'ludao': 'LDL',
    'lueyang': 'LYY',
    'lufan': 'LVM',
    'lufeng': 'LLQ',
    'lufengnan': 'LQM',
    'lugou': 'LOM',
    'lugu': 'BNQ',
    'lujiang': 'UJH',
    'lukoupu': 'LKQ',
    'luliang': 'LRM',
    'lulong': 'UAP',
    'luntai': 'LAR',
    'luocheng': 'VCZ',
    'luofa': 'LOP',
    'luohe': 'LON',
    'luohexi': 'LBN',
    'luohuangnan': 'LNE',
    'luojiang': 'LJW',
    'luojiangdong': 'IKW',
    'luomen': 'LMJ',
    'luoping': 'LPM',
    'luopoling': 'LPP',
    'luoshan': 'LRN',
    'luotuoxiang': 'LTJ',
    'luowansanjiang': 'KRW',
    'luoyang': 'LYF',
    'luoyangdong': 'LDF',
    'luoyanglongmen': 'LLF',
    'luoyuan': 'LVS',
    'lushan': 'LSG',
    'lushuihe': 'LUL',
    'lutai': 'LTP',
    'luxi': 'LUG',
    'luzhai': 'LIZ',
    'luzhaibei': 'LSZ',
    'lvboyuan': 'LCF',
    'lvhua': 'LWJ',
    'lvliang': 'LHV',
    'lvshun': 'LST',
    'maanshan': 'MAH',
    'maanshandong': 'OMH',
    'macheng': 'MCN',
    'machengbei': 'MBN',
    'mahuang': 'MHZ',
    'maiyuan': 'MYS',
    'malan': 'MLR',
    'malianhe': 'MHB',
    'malin': 'MID',
    'malong': 'MGM',
    'manasi': 'MSR',
    'manasihu': 'MNR',
    'mangui': 'MHX',
    'manshuiwan': 'MKW',
    'manzhouli': 'MLX',
    'maoba': 'MBY',
    'maobaguan': 'MGY',
    'maocaoping': 'KPM',
    'maochen': 'MHN',
    'maoershan': 'MRB',
    'maolin': 'MLD',
    'maoling': 'MLZ',
    'maoming': 'MDQ',
    'maomingxi': 'MMZ',
    'maoshezu': 'MOM',
    'maqiaohe': 'MQB',
    'masanjia': 'MJT',
    'mashan': 'MAB',
    'mawei': 'VAW',
    'mayang': 'MVQ',
    'meihekou': 'MHL',
    'meilan': 'MHQ',
    'meishan': 'MSW',
    'meishandong': 'IUW',
    'meixi': 'MEB',
    'meizhou': 'MOQ',
    'mengdonghe': 'MUQ',
    'mengjiagang': 'MGB',
    'mengzhuang': 'MZF',
    'mengzi': 'MZM',
    'mengzibei': 'MBM',
    'menyuan': 'MYO',
    'mianchi': 'MCF',
    'mianchinan': 'MNF',
    'mianduhe': 'MDX',
    'mianning': 'UGW',
    'mianxian': 'MVY',
    'mianyang': 'MYW',
    'miaocheng': 'MAP',
    'miaoling': 'MLL',
    'miaoshan': 'MSN',
    'miaozhuang': 'MZJ',
    'midu': 'MDF',
    'mile': 'MLM',
    'miluo': 'MLQ',
    'miluodong': 'MQQ',
    'mingcheng': 'MCL',
    'minggang': 'MGN',
    'minggangdong': 'MDN',
    'mingguang': 'MGH',
    'mingshuihe': 'MUT',
    'mingzhu': 'MFQ',
    'minhenan': 'MNO',
    'minji': 'MJN',
    'minle': 'MBJ',
    'minqing': 'MQS',
    'minqingbei': 'MBS',
    'minquan': 'MQF',
    'minquanbei': 'MIF',
    'minxian': 'MXJ',
    'mishan': 'MSB',
    'mishazi': 'MST',
    'miyi': 'MMW',
    'miyunbei': 'MUP',
    'mizhi': 'MEY',
    'modaoshi': 'MOB',
    'moerdaoga': 'MRX',
    'mohe': 'MVX',
    'moyu': 'MUR',
    'mudanjiang': 'MDB',
    'muling': 'MLB',
    'mulitu': 'MUD',
    'mupang': 'MPQ',
    'muping': 'MBK',
    'muyun': 'KIQ',
    'nailin': 'NLD',
    'naiman': 'NMD',
    'naluo': 'ULZ',
    'nanboshan': 'NBK',
    'nanbu': 'NBE',
    'nancao': 'NEF',
    'nancha': 'NCB',
    'nanchang': 'NCG',
    'nanchangxi': 'NXG',
    'nancheng': 'NDG',
    'nanchengsi': 'NSP',
    'nanchong': 'NCW',
    'nanchongbei': 'NCE',
    'nandamiao': 'NMP',
    'nandan': 'NDZ',
    'nanfen': 'NFT',
    'nanfenbei': 'NUT',
    'nanfeng': 'NFG',
    'nangongdong': 'NFP',
    'nanguancun': 'NGP',
    'nanguanling': 'NLT',
    'nanhechuan': 'NHJ',
    'nanhuabei': 'NHS',
    'nanhudong': 'NDN',
    'nanjiang': 'FIW',
    'nanjiangkou': 'NDQ',
    'nanjing': 'NJS',
    'nanjingnan': 'NKH',
    'nankou': 'NKP',
    'nankouqian': 'NKT',
    'nanlang': 'NNQ',
    'nanling': 'LLH',
    'nanmu': 'NMX',
    'nanning': 'NNZ',
    'nanningdong': 'NFZ',
    'nanningxi': 'NXZ',
    'nanping': 'NPS',
    'nanpingbei': 'NBS',
    'nanpingnan': 'NNS',
    'nanqiao': 'NQD',
    'nanqiu': 'NCK',
    'nantai': 'NTT',
    'nantong': 'NUH',
    'nantou': 'NOQ',
    'nanwanzi': 'NWP',
    'nanxiangbei': 'NEH',
    'nanxiong': 'NCQ',
    'nanyang': 'NFF',
    'nanyangzhai': 'NYF',
    'nanyu': 'NUP',
    'nanzamu': 'NZT',
    'nanzhao': 'NAF',
    'napu': 'NPZ',
    'naqu': 'NQO',
    'nayong': 'NYE',
    'nehe': 'NHX',
    'neijiang': 'NJW',
    'neijiangbei': 'NKW',
    'neixiang': 'NXF',
    'nengjia': 'NJD',
    'nenjiang': 'NGX',
    'niangziguan': 'NIP',
    'nianzishan': 'NZX',
    'nihezi': 'NHD',
    'nileke': 'NIR',
    'nimu': 'NMO',
    'ningan': 'NAB',
    'ningbo': 'NGH',
    'ningbodong': 'NVH',
    'ningcun': 'NCZ',
    'ningde': 'NES',
    'ningdong': 'NOJ',
    'ningdongnan': 'NDJ',
    'ningguo': 'NNH',
    'ninghai': 'NHH',
    'ningjia': 'NVT',
    'ninglingxian': 'NLF',
    'ningming': 'NMZ',
    'ningqiangnan': 'NOY',
    'ningwu': 'NWV',
    'ningxiang': 'NXQ',
    'niujia': 'NJB',
    'niuxintai': 'NXT',
    'nongan': 'NAT',
    'nuanquan': 'NQJ',
    'paihuaibei': 'PHP',
    'pananzhen': 'PAJ',
    'panguan': 'PAM',
    'panjiadian': 'PDP',
    'panjin': 'PVD',
    'panjinbei': 'PBD',
    'panlongcheng': 'PNN',
    'panshan': 'PUD',
    'panshi': 'PSL',
    'panzhihua': 'PRW',
    'panzhou': 'PAE',
    'paozi': 'POD',
    'peide': 'PDB',
    'pengan': 'PAW',
    'penglaishi': 'POK',
    'pengshan': 'PSW',
    'pengshanbei': 'PPW',
    'pengshui': 'PHW',
    'pengyang': 'PYJ',
    'pengze': 'PZG',
    'pengzhou': 'PMW',
    'piandian': 'PRP',
    'pianling': 'PNT',
    'piaoertun': 'PRT',
    'pikou': 'PUT',
    'pikounan': 'PKT',
    'pingan': 'PAL',
    'pinganyi': 'PNO',
    'pinganzhen': 'PZT',
    'pingbanan': 'PBE',
    'pingbian': 'PBM',
    'pingchang': 'PCE',
    'pingdingshan': 'PEN',
    'pingdingshanxi': 'BFF',
    'pingdu': 'PAK',
    'pingfang': 'PFB',
    'pinggang': 'PGL',
    'pingguan': 'PGM',
    'pingguo': 'PGZ',
    'pinghekou': 'PHM',
    'pinghu': 'PHQ',
    'pingliang': 'PIJ',
    'pingliangnan': 'POJ',
    'pingnannan': 'PAZ',
    'pingquan': 'PQP',
    'pingshan': 'PSB',
    'pingshang': 'PSK',
    'pingshe': 'PSV',
    'pingshi': 'PSQ',
    'pingtai': 'PVT',
    'pingtian': 'PTM',
    'pingwang': 'PWV',
    'pingxiang': 'PXG',
    'pingxiangbei': 'PBG',
    'pingxingguan': 'PGV',
    'pingyang': 'PYX',
    'pingyao': 'PYV',
    'pingyaogucheng': 'PDV',
    'pingyi': 'PIK',
    'pingyu': 'PYP',
    'pingyuan': 'PYK',
    'pingyuandong': 'PUK',
    'pingyuanpu': 'PPJ',
    'pingzhuang': 'PZD',
    'pingzhuangnan': 'PND',
    'pishan': 'PSR',
    'pixian': 'PWW',
    'pixianxi': 'PCW',
    'pizhou': 'PJH',
    'podixia': 'PXJ',
    'poyang': 'PYG',
    'puan': 'PAN',
    'puanxian': 'PUE',
    'pucheng': 'PCY',
    'puchengdong': 'PEY',
    'puding': 'PGW',
    'pulandian': 'PLT',
    'puning': 'PEQ',
    'putaojing': 'PTW',
    'putian': 'PTS',
    'puwan': 'PWT',
    'puxiong': 'POW',
    'puyang': 'PYF',
    'puzhehei': 'PZM',
    'qianan': 'QOT',
    'qianfeng': 'QFB',
    'qianhe': 'QUY',
    'qianjiang': 'QJN',
    'qianjinzhen': 'QEB',
    'qianmotou': 'QMP',
    'qianshan': 'QXQ',
    'qianwei': 'QWD',
    'qianweitang': 'QWP',
    'qianxian': 'QBY',
    'qianyang': 'QOY',
    'qiaotou': 'QAT',
    'qiaoxi': 'QXJ',
    'qichun': 'QRN',
    'qidian': 'QDM',
    'qidong': 'QMQ',
    'qidongbei': 'QRQ',
    'qifengta': 'QVP',
    'qijiang': 'QJW',
    'qijiangdong': 'QDE',
    'qijiapu': 'QBT',
    'qilihe': 'QLD',
    'qimen': 'QIH',
    'qinan': 'QGJ',
    'qingan': 'QAB',
    'qingbaijiangdong': 'QFW',
    'qingchengshan': 'QSW',
    'qingchuan': 'QCE',
    'qingdao': 'QDK',
    'qingdaobei': 'QHK',
    'qingdui': 'QET',
    'qingfeng': 'QFT',
    'qinghe': 'QIP',
    'qinghecheng': 'QYP',
    'qinghemen': 'QHD',
    'qinghuayuan': 'QHP',
    'qingjianxian': 'QNY',
    'qinglian': 'QEW',
    'qinglong': 'QIB',
    'qinglongshan': 'QGH',
    'qingshan': 'QSB',
    'qingshen': 'QVW',
    'qingsheng': 'QSQ',
    'qingshui': 'QUJ',
    'qingshuibei': 'QEJ',
    'qingshuixian': 'QIJ',
    'qingtian': 'QVH',
    'qingtongxia': 'QTJ',
    'qingxian': 'QXP',
    'qingxu': 'QUV',
    'qingyangshan': 'QSJ',
    'qingyuan': 'QBQ',
    'qingzhoushi': 'QZK',
    'qinhuangdao': 'QTP',
    'qinjia': 'QJB',
    'qinjiazhuang': 'QZV',
    'qinling': 'QLY',
    'qinxian': 'QVV',
    'qinyang': 'QYF',
    'qinzhou': 'QRZ',
    'qinzhoudong': 'QDZ',
    'qionghai': 'QYQ',
    'qiqihaer': 'QHX',
    'qiqihaernan': 'QNB',
    'qishan': 'QAY',
    'qishuyan': 'QYH',
    'qitaihe': 'QTB',
    'qixian': 'QXV',
    'qixiandong': 'QGV',
    'qixiaying': 'QXC',
    'qixiayingnan': 'QNC',
    'qiyang': 'QWQ',
    'qiyangbei': 'QVQ',
    'qiying': 'QYJ',
    'qiziwan': 'QZQ',
    'quanjiao': 'INH',
    'quanyang': 'QYL',
    'quanzhou': 'QYS',
    'quanzhoudong': 'QRS',
    'quanzhounan': 'QNZ',
    'queshan': 'QSN',
    'qufu': 'QFK',
    'qufudong': 'QAK',
    'qujiang': 'QIM',
    'qujing': 'QJM',
    'qujingbei': 'QBM',
    'qujiu': 'QJZ',
    'quli': 'QLZ',
    'qushuixian': 'QSO',
    'quxian': 'QRW',
    'quzhou': 'QEH',
    'raoping': 'RVQ',
    'raoyang': 'RVP',
    'raoyanghe': 'RHD',
    'renbu': 'RUO',
    'renqiu': 'RQP',
    'reshui': 'RSD',
    'rikaze': 'RKO',
    'rizhao': 'RZK',
    'rongan': 'RAZ',
    'rongchang': 'RCW',
    'rongchangbei': 'RQW',
    'rongcheng': 'RCK',
    'ronggui': 'RUQ',
    'rongjiang': 'RVW',
    'rongshui': 'RSZ',
    'rongxian': 'RXZ',
    'rudong': 'RIH',
    'rugao': 'RBH',
    'ruian': 'RAH',
    'ruichang': 'RCG',
    'ruichangxi': 'RXG',
    'ruijin': 'RJG',
    'rujigou': 'RQJ',
    'rushan': 'ROK',
    'ruyang': 'RYF',
    'ruzhou': 'ROF',
    'saihantala': 'SHC',
    'salaqi': 'SLC',
    'sandaohu': 'SDL',
    'sanduxian': 'KKW',
    'sanggendalai': 'OGC',
    'sanguankou': 'OKJ',
    'sangyuanzi': 'SAJ',
    'sanhexian': 'OXP',
    'sanhezhuang': 'SVP',
    'sanhuizhen': 'OZW',
    'sanjiadian': 'ODP',
    'sanjianfang': 'SFX',
    'sanjiangkou': 'SKD',
    'sanjiangnan': 'SWZ',
    'sanjiangxian': 'SOZ',
    'sanjiazhai': 'SMM',
    'sanjingzi': 'OJT',
    'sanmenxia': 'SMF',
    'sanmenxian': 'OQH',
    'sanmenxianan': 'SCF',
    'sanmenxiaxi': 'SXF',
    'sanming': 'SMS',
    'sanmingbei': 'SHS',
    'sanshijia': 'SRD',
    'sanshilipu': 'SST',
    'sanshui': 'SJQ',
    'sanshuibei': 'ARQ',
    'sanshuinan': 'RNQ',
    'sansui': 'QHW',
    'santangji': 'SDH',
    'sanya': 'JUQ',
    'sanyangchuan': 'SYJ',
    'sanyijing': 'OYD',
    'sanying': 'OEJ',
    'sanyuan': 'SAY',
    'sanyuanpu': 'SYL',
    'shache': 'SCR',
    'shacheng': 'SCP',
    'shahai': 'SED',
    'shahe': 'SHP',
    'shahekou': 'SKT',
    'shaheshi': 'VOP',
    'shahousuo': 'SSD',
    'shalingzi': 'SLP',
    'shalingzixi': 'IXP',
    'shanchengzhen': 'SCL',
    'shandan': 'SDJ',
    'shangbancheng': 'SBP',
    'shangbanchengnan': 'OBP',
    'shangcheng': 'SWN',
    'shangdu': 'SXC',
    'shanggaozhen': 'SVK',
    'shanghai': 'SHH',
    'shanghaihongqiao': 'AOH',
    'shanghainan': 'SNH',
    'shanghaixi': 'SXH',
    'shanghang': 'JBS',
    'shanghe': 'SOK',
    'shangjia': 'SJB',
    'shangluo': 'OLY',
    'shangnan': 'ONY',
    'shangqiu': 'SQF',
    'shangqiunan': 'SPF',
    'shangrao': 'SRG',
    'shangwan': 'SWP',
    'shangxipu': 'SXM',
    'shangyaodun': 'SPJ',
    'shangyu': 'BDH',
    'shangyuan': 'SUD',
    'shangzhi': 'SZB',
    'shanhaiguan': 'SHD',
    'shanhetun': 'SHL',
    'shanpodong': 'SBN',
    'shanshan': 'SSR',
    'shanshanbei': 'SMR',
    'shanshi': 'SQB',
    'shantou': 'OTQ',
    'shanwei': 'OGQ',
    'shanyin': 'SNV',
    'shaodong': 'FIQ',
    'shaoguan': 'SNQ',
    'shaoguandong': 'SGQ',
    'shaojiatang': 'SJJ',
    'shaoshan': 'SSQ',
    'shaoshannan': 'INQ',
    'shaowu': 'SWS',
    'shaoxing': 'SOH',
    'shaoxingbei': 'SLH',
    'shaoxingdong': 'SSH',
    'shaoyang': 'SYQ',
    'shaoyangbei': 'OVQ',
    'shapingba': 'CYW',
    'shapotou': 'SFJ',
    'shaqiao': 'SQM',
    'shatuo': 'SFM',
    'shawanxian': 'SXR',
    'shaxian': 'SAS',
    'shelihu': 'VLD',
    'shenchi': 'SMV',
    'shenfang': 'OLH',
    'shengfang': 'SUP',
    'shenjia': 'OJB',
    'shenjiahe': 'OJJ',
    'shenjingzi': 'SWT',
    'shenmu': 'OMY',
    'shenqiu': 'SQN',
    'shenshu': 'SWB',
    'shentou': 'SEV',
    'shenyang': 'SYT',
    'shenyangbei': 'SBT',
    'shenyangdong': 'SDT',
    'shenyangnan': 'SOT',
    'shenzhen': 'SZQ',
    'shenzhenbei': 'IOQ',
    'shenzhendong': 'BJQ',
    'shenzhenpingshan': 'IFQ',
    'shenzhenxi': 'OSQ',
    'shenzhou': 'OZP',
    'shexian': 'OVH',
    'shexianbei': 'NPH',
    'shiba': 'OBJ',
    'shibing': 'AQW',
    'shiboyuan': 'ZWT',
    'shicheng': 'SCT',
    'shidu': 'SEP',
    'shihezi': 'SZR',
    'shijiazhuang': 'SJP',
    'shijiazhuangbei': 'VVP',
    'shijiazhuangdong': 'SXP',
    'shijiazi': 'SJD',
    'shijiazui': 'SHM',
    'shijingshannan': 'SRP',
    'shilidian': 'OMP',
    'shilin': 'SPB',
    'shiling': 'SOL',
    'shilinnan': 'LNM',
    'shilinxi': 'SYM',
    'shilong': 'SLQ',
    'shimenxian': 'OMQ',
    'shimenxianbei': 'VFQ',
    'shiqiao': 'SQE',
    'shiqiaozi': 'SQT',
    'shiquanxian': 'SXY',
    'shiren': 'SRL',
    'shirencheng': 'SRB',
    'shishan': 'KSQ',
    'shishanbei': 'NSQ',
    'shiti': 'STE',
    'shitou': 'OTB',
    'shixian': 'SXL',
    'shixiazi': 'SXJ',
    'shixing': 'IPQ',
    'shiyan': 'SNN',
    'shizhuang': 'SNM',
    'shizhuxian': 'OSW',
    'shizong': 'SEM',
    'shizuishan': 'QQJ',
    'shoushan': 'SAT',
    'shouyang': 'SYV',
    'shuangchengbei': 'SBB',
    'shuangchengpu': 'SCB',
    'shuangfeng': 'OFB',
    'shuangfengbei': 'NFQ',
    'shuanghezhen': 'SEL',
    'shuangji': 'SML',
    'shuangliao': 'ZJD',
    'shuangliujichang': 'IPW',
    'shuangliuxi': 'IQW',
    'shuangpai': 'SBZ',
    'shuangyang': 'OYT',
    'shuangyashan': 'SSB',
    'shucheng': 'OCH',
    'shuidong': 'SIL',
    'shuifu': 'OTW',
    'shuijiahu': 'SQH',
    'shuiquan': 'SID',
    'shuiyang': 'OYP',
    'shuiyuan': 'OYJ',
    'shulan': 'SLL',
    'shule': 'SUR',
    'shulehe': 'SHJ',
    'shumuling': 'FMQ',
    'shunchang': 'SCS',
    'shunde': 'ORQ',
    'shundexueyuan': 'OJQ',
    'shunyi': 'SOP',
    'shuozhou': 'SUV',
    'shuyang': 'FMH',
    'sidaowan': 'OUD',
    'sifangtai': 'STB',
    'siheyong': 'OHD',
    'sihong': 'GQH',
    'sihui': 'AHQ',
    'sijialing': 'OLK',
    'siping': 'SPT',
    'sipingdong': 'PPT',
    'sishui': 'OSK',
    'sixian': 'GPH',
    'siyang': 'MPH',
    'song': 'SOB',
    'songchenglu': 'SFF',
    'songhe': 'SBM',
    'songjiang': 'SAH',
    'songjianghe': 'SJL',
    'songjiangnan': 'IMH',
    'songjiangzhen': 'OZL',
    'songming': 'SVM',
    'songshanhubei': 'KUQ',
    'songshu': 'SFT',
    'songshuzhen': 'SSL',
    'songtao': 'MZQ',
    'songyuan': 'VYT',
    'songyuanbei': 'OCT',
    'songzi': 'SIN',
    'suide': 'ODY',
    'suifenhe': 'SFB',
    'suihua': 'SHB',
    'suiling': 'SIB',
    'suining': 'NIW',
    'suiping': 'SON',
    'suixi': 'SXZ',
    'suiyang': 'SYB',
    'suizhong': 'SZD',
    'suizhongbei': 'SND',
    'suizhou': 'SZN',
    'sujiatun': 'SXT',
    'suning': 'SYP',
    'sunitezuoqi': 'ONC',
    'sunjia': 'SUB',
    'sunwu': 'SKB',
    'sunzhen': 'OZY',
    'suolun': 'SNT',
    'suotuhan': 'SHX',
    'susong': 'OAH',
    'suzhou': 'OXH',
    'suzhoubei': 'OHH',
    'suzhoudong': 'SRH',
    'suzhouxinqu': 'ITH',
    'suzhouyuanqu': 'KAH',
    'taerqi': 'TVX',
    'taha': 'THX',
    'tahe': 'TXX',
    'taian': 'TID',
    'taiannan': 'TAD',
    'taigu': 'TGV',
    'taiguxi': 'TIV',
    'taihe': 'THG',
    'taihebei': 'JYN',
    'taihu': 'TKH',
    'taikang': 'TKX',
    'tailai': 'TLX',
    'taimushan': 'TLS',
    'taining': 'TNS',
    'taipingchuan': 'TIT',
    'taipingzhen': 'TEB',
    'taiqian': 'TTK',
    'taishan': 'TAK',
    'taiyangshan': 'TYJ',
    'taiyangsheng': 'TQT',
    'taiyuan': 'TYV',
    'taiyuanbei': 'TBV',
    'taiyuandong': 'TDV',
    'taiyuannan': 'TNV',
    'taizhou': 'TZH',
    'tancheng': 'TZK',
    'tangbao': 'TBQ',
    'tangchi': 'TCX',
    'tanggu': 'TGP',
    'tanghai': 'THM',
    'tanghe': 'THF',
    'tangjiawan': 'PDQ',
    'tangshan': 'TSP',
    'tangshanbei': 'FUP',
    'tangshancheng': 'TCT',
    'tangwanghe': 'THB',
    'tangxunhu': 'THN',
    'tangyin': 'TYF',
    'tangyuan': 'TYB',
    'tanjiajing': 'TNJ',
    'taocun': 'TCK',
    'taocunbei': 'TOK',
    'taojiatun': 'TOT',
    'taolaizhao': 'TPT',
    'taonan': 'TVT',
    'taoshan': 'TAB',
    'tashizui': 'TIM',
    'tayayi': 'TYP',
    'tengxian': 'TAZ',
    'tengzhou': 'TXK',
    'tengzhoudong': 'TEK',
    'tiandong': 'TDZ',
    'tiandongbei': 'TBZ',
    'tiangang': 'TGL',
    'tianhejichang': 'TJN',
    'tianhejie': 'TEN',
    'tianjin': 'TJP',
    'tianjinbei': 'TBP',
    'tianjinnan': 'TIP',
    'tianjinxi': 'TXP',
    'tianlin': 'TFZ',
    'tianmen': 'TMN',
    'tianmennan': 'TNN',
    'tianqiaoling': 'TQL',
    'tianshifu': 'TFT',
    'tianshui': 'TSJ',
    'tianshuinan': 'TIJ',
    'tianxindong': 'KQQ',
    'tianyang': 'TRZ',
    'tianyi': 'TND',
    'tianzhen': 'TZV',
    'tianzhu': 'TZJ',
    'tianzhushan': 'QWH',
    'tiechang': 'TCL',
    'tieli': 'TLB',
    'tieling': 'TLT',
    'tielingxi': 'PXT',
    'tingliang': 'TIZ',
    'tonganyi': 'TAJ',
    'tongbai': 'TBF',
    'tongbei': 'TBB',
    'tongcheng': 'TTH',
    'tongdao': 'TRQ',
    'tonggou': 'TOL',
    'tongguan': 'TGY',
    'tonghai': 'TAM',
    'tonghua': 'THL',
    'tonghuaxian': 'TXL',
    'tongjiang': 'TJB',
    'tongjunzhuang': 'TZP',
    'tongliao': 'TLD',
    'tongling': 'TJH',
    'tonglingbei': 'KXH',
    'tongnan': 'TVW',
    'tongren': 'RDQ',
    'tongrennan': 'TNW',
    'tongtu': 'TUT',
    'tongwei': 'TWJ',
    'tongxiang': 'TCH',
    'tongxin': 'TXJ',
    'tongyuanpu': 'TYT',
    'tongyuanpuxi': 'TST',
    'tongzhou': 'TOP',
    'tongzhouxi': 'TAP',
    'tongzi': 'TZW',
    'tongzibei': 'TBE',
    'tongzidong': 'TDE',
    'tongzilin': 'TEW',
    'tuanjie': 'TIX',
    'tuditangdong': 'TTN',
    'tuguiwula': 'TGC',
    'tuha': 'THR',
    'tuliemaodu': 'TMD',
    'tulihe': 'TEX',
    'tulufan': 'TFR',
    'tulufanbei': 'TAR',
    'tumen': 'TML',
    'tumenbei': 'QSL',
    'tumenzi': 'TCJ',
    'tumuertai': 'TRC',
    'tuoyaoling': 'TIL',
    'tuqiang': 'TQX',
    'tuqiaozi': 'TQJ',
    'tuxi': 'TSW',
    'wafangdian': 'WDT',
    'wafangdianxi': 'WXT',
    'waitoushan': 'WIT',
    'walagan': 'WVX',
    'wanfatun': 'WFB',
    'wanganzhen': 'WVP',
    'wangcang': 'WEW',
    'wangdu': 'WDP',
    'wangfu': 'WUT',
    'wanggang': 'WGB',
    'wangjiawan': 'WJJ',
    'wangjiayingxi': 'KNM',
    'wangou': 'WGL',
    'wangqing': 'WQL',
    'wangtong': 'WTP',
    'wangtuanzhuang': 'WZJ',
    'wangyang': 'WYB',
    'wangzhaotun': 'WZB',
    'wanle': 'WEB',
    'wannian': 'WWG',
    'wanning': 'WNQ',
    'wanyuan': 'WYY',
    'wanzhou': 'WYW',
    'wanzhoubei': 'WZE',
    'wawushan': 'WAH',
    'wayaotian': 'WIM',
    'weidong': 'WVT',
    'weifang': 'WFK',
    'weihai': 'WKK',
    'weihaibei': 'WHK',
    'weihe': 'WHB',
    'weihui': 'WHF',
    'weihulingbei': 'WBL',
    'weijin': 'WJL',
    'weinan': 'WNY',
    'weinanbei': 'WBY',
    'weinannan': 'WVY',
    'weinanzhen': 'WNJ',
    'weiqing': 'WAM',
    'weishanzhuang': 'WSP',
    'weishe': 'WSM',
    'weixing': 'WVB',
    'weiyuan': 'WEJ',
    'weizhangzi': 'WKD',
    'weizhuang': 'WZY',
    'weizigou': 'WZL',
    'weizizhen': 'WQP',
    'wenan': 'WBP',
    'wenchang': 'WEQ',
    'wenchun': 'WDB',
    'wendeng': 'WBK',
    'wendengdong': 'WGK',
    'wendi': 'WNZ',
    'wenling': 'VHH',
    'wenshui': 'WEV',
    'wenxi': 'WXV',
    'wenxixi': 'WOV',
    'wenzhou': 'RZH',
    'wenzhounan': 'VRH',
    'woken': 'WQB',
    'wolitun': 'WLX',
    'wopi': 'WPT',
    'wuan': 'WAP',
    'wubu': 'WUY',
    'wuchagou': 'WCT',
    'wuchang': 'WCB',
    'wudalianchi': 'WRB',
    'wudangshan': 'WRN',
    'wudaogou': 'WDL',
    'wudaohe': 'WHP',
    'wuerqihan': 'WHX',
    'wufushan': 'WFG',
    'wugong': 'WGY',
    'wuguantian': 'WGM',
    'wuhai': 'WVC',
    'wuhaixi': 'WXC',
    'wuhan': 'WHN',
    'wuhu': 'WHH',
    'wuji': 'WJP',
    'wujia': 'WUB',
    'wujiachuan': 'WCJ',
    'wujiatun': 'WJT',
    'wukeshu': 'WKT',
    'wulanchabu': 'WPC',
    'wulanhada': 'WLC',
    'wulanhaote': 'WWT',
    'wulashan': 'WSC',
    'wulateqianqi': 'WQC',
    'wulian': 'WLK',
    'wulong': 'WLW',
    'wulongbei': 'WBT',
    'wulongbeidong': 'WMT',
    'wulongquannan': 'WFN',
    'wulumuqi': 'WAR',
    'wulumuqinan': 'WMR',
    'wunuer': 'WRX',
    'wunvshan': 'WET',
    'wuqiao': 'WUP',
    'wuqing': 'WWP',
    'wushan': 'WSJ',
    'wusheng': 'WSE',
    'wutaishan': 'WSV',
    'wuwei': 'WUJ',
    'wuweinan': 'WWJ',
    'wuwu': 'WVR',
    'wuxi': 'WXH',
    'wuxiang': 'WVV',
    'wuxidong': 'WGH',
    'wuxixinqu': 'IFH',
    'wuxu': 'WYZ',
    'wuxue': 'WXN',
    'wuyi': 'RYH',
    'wuyibei': 'WDH',
    'wuyiling': 'WPB',
    'wuying': 'WWB',
    'wuyishan': 'WAS',
    'wuyishanbei': 'WBS',
    'wuyishandong': 'WCS',
    'wuyuan': 'WYC',
    'wuzhai': 'WZV',
    'wuzhi': 'WIF',
    'wuzhou': 'WZZ',
    'wuzhounan': 'WBZ',
    'xiabancheng': 'EBP',
    'xiachengzi': 'XCB',
    'xiaguanying': 'XGJ',
    'xiahuayuan': 'XYP',
    'xiajiang': 'EJG',
    'xiamatang': 'XAT',
    'xiamen': 'XMS',
    'xiamenbei': 'XKS',
    'xiamengaoqi': 'XBS',
    'xian': 'XAY',
    'xianbei': 'EAY',
    'xianfeng': 'NQQ',
    'xiangcheng': 'ERN',
    'xiangfang': 'XFB',
    'xiangfen': 'XFV',
    'xiangfenxi': 'XTV',
    'xiangfulu': 'FVQ',
    'xianghe': 'XXB',
    'xianglan': 'XNB',
    'xiangtan': 'XTQ',
    'xiangtanbei': 'EDQ',
    'xiangtang': 'XTG',
    'xiangxiang': 'XXQ',
    'xiangyang': 'XFN',
    'xiangyangdong': 'XWN',
    'xiangyuan': 'EIF',
    'xiangyun': 'EXM',
    'xiangzhanglu': 'FNQ',
    'xianlin': 'XPH',
    'xiannan': 'CAY',
    'xianning': 'XNN',
    'xianningbei': 'XRN',
    'xianningdong': 'XKN',
    'xianningnan': 'UNN',
    'xianrenqiao': 'XRL',
    'xiantaoxi': 'XAN',
    'xianyang': 'XYY',
    'xianyangqindu': 'XOY',
    'xianyou': 'XWS',
    'xiaocun': 'XEM',
    'xiaodejiang': 'EJM',
    'xiaodong': 'XOD',
    'xiaogan': 'XGN',
    'xiaoganbei': 'XJN',
    'xiaogandong': 'GDN',
    'xiaoheyan': 'XYD',
    'xiaohezhen': 'EKY',
    'xiaojinkou': 'NKQ',
    'xiaolan': 'EAQ',
    'xiaoling': 'XLB',
    'xiaonan': 'XNV',
    'xiaoshao': 'XAM',
    'xiaoshi': 'XST',
    'xiaosigou': 'ESP',
    'xiaoxi': 'XOV',
    'xiaoxianbei': 'QSH',
    'xiaoxinjie': 'XXM',
    'xiaoxizhuang': 'XXP',
    'xiaoyangqi': 'XYX',
    'xiaoyuejiu': 'XFM',
    'xiaoyugu': 'XHM',
    'xiapu': 'XOS',
    'xiashe': 'XSV',
    'xiashi': 'XIZ',
    'xiataizi': 'EIP',
    'xiayixian': 'EJH',
    'xibali': 'XLP',
    'xichang': 'ECW',
    'xichangnan': 'ENW',
    'xidamiao': 'XMP',
    'xide': 'EDW',
    'xiehejian': 'EEP',
    'xiejiazhen': 'XMT',
    'xifeng': 'XFT',
    'xigangzi': 'NBB',
    'xigu': 'XIJ',
    'xigucheng': 'XUJ',
    'xihudong': 'WDQ',
    'xijiekou': 'EKM',
    'xilin': 'XYB',
    'xilinhaote': 'XTC',
    'xiliu': 'GCT',
    'ximashan': 'XMB',
    'xinan': 'EAM',
    'xinanxian': 'XAF',
    'xinbaoan': 'XAP',
    'xinchengzi': 'XCT',
    'xinchuoyuan': 'XRX',
    'xindudong': 'EWW',
    'xinfeng': 'EFG',
    'xingan': 'XAZ',
    'xinganbei': 'XDZ',
    'xingcheng': 'XCD',
    'xingguo': 'EUG',
    'xinghexi': 'XEC',
    'xingkai': 'EKB',
    'xinglongdian': 'XDD',
    'xinglongxian': 'EXP',
    'xinglongzhen': 'XZB',
    'xingning': 'ENQ',
    'xingping': 'XPY',
    'xingquanbu': 'XQJ',
    'xingshu': 'XSB',
    'xingshutun': 'XDT',
    'xingtai': 'XTP',
    'xingtaidong': 'EDP',
    'xingye': 'SNZ',
    'xingyi': 'XRZ',
    'xinhe': 'XIR',
    'xinhua': 'EHQ',
    'xinhuanan': 'EJQ',
    'xinhuang': 'XLQ',
    'xinhuangxi': 'EWQ',
    'xinhuatun': 'XAX',
    'xinhui': 'EFQ',
    'xining': 'XNO',
    'xinji': 'ENP',
    'xinjiang': 'XJV',
    'xinjin': 'IRW',
    'xinjinan': 'IJP',
    'xinjinnan': 'ITW',
    'xinle': 'ELP',
    'xinli': 'XLJ',
    'xinlin': 'XPX',
    'xinlitun': 'XLD',
    'xinlizhen': 'XGT',
    'xinmin': 'XMD',
    'xinpingtian': 'XPM',
    'xinqing': 'XQB',
    'xinqiu': 'XQD',
    'xinsongpu': 'XOB',
    'xinwopu': 'EPD',
    'xinxian': 'XSN',
    'xinxiang': 'XXF',
    'xinxiangdong': 'EGF',
    'xinxingxian': 'XGQ',
    'xinyang': 'XUN',
    'xinyangdong': 'OYN',
    'xinyangzhen': 'XZJ',
    'xinyi': 'EEQ',
    'xinyouyi': 'EYB',
    'xinyu': 'XUG',
    'xinyubei': 'XBG',
    'xinzhangfang': 'XZX',
    'xinzhangzi': 'ERP',
    'xinzhao': 'XZT',
    'xinzhengjichang': 'EZF',
    'xinzhou': 'XXV',
    'xiongyuecheng': 'XYT',
    'xiping': 'XPN',
    'xipingxi': 'EGQ',
    'xipu': 'XIW',
    'xipudong': 'XAW',
    'xishui': 'XZN',
    'xiushan': 'ETW',
    'xiuwenxian': 'XWE',
    'xiuwu': 'XWF',
    'xiuwuxi': 'EXF',
    'xiwuqi': 'XWC',
    'xixia': 'XIF',
    'xixian': 'ENN',
    'xixiang': 'XQY',
    'xixiaozhao': 'XZC',
    'xiyangcun': 'XQF',
    'xizhelimu': 'XRD',
    'xizi': 'XZD',
    'xuancheng': 'ECH',
    'xuangang': 'XGV',
    'xuanhan': 'XHY',
    'xuanhe': 'XWJ',
    'xuanhua': 'XHP',
    'xuanwei': 'XWM',
    'xuanzhong': 'XRP',
    'xuchang': 'XCF',
    'xuchangdong': 'XVF',
    'xujia': 'XJB',
    'xujiatai': 'XTJ',
    'xujiatun': 'XJT',
    'xunyang': 'XUY',
    'xunyangbei': 'XBY',
    'xupu': 'EPQ',
    'xupunan': 'EMQ',
    'xusanwan': 'XSJ',
    'xushui': 'XSP',
    'xuwen': 'XJQ',
    'xuzhou': 'XCH',
    'xuzhoudong': 'UUH',
    'yabuli': 'YBB',
    'yabulinan': 'YWB',
    'yakeshi': 'YKX',
    'yalongwan': 'TWQ',
    'yanan': 'YWY',
    'yancheng': 'AFH',
    'yanchi': 'YAP',
    'yanchuan': 'YYY',
    'yandangshan': 'YGH',
    'yangang': 'YGW',
    'yangcao': 'YAB',
    'yangcaodi': 'YKM',
    'yangcha': 'YAL',
    'yangcheng': 'YNF',
    'yangchenghu': 'AIH',
    'yangchun': 'YQQ',
    'yangcun': 'YBP',
    'yanggang': 'YRB',
    'yanggao': 'YOV',
    'yanggu': 'YIK',
    'yanghe': 'GTH',
    'yangjiuhe': 'YHM',
    'yanglin': 'YLM',
    'yangling': 'YSY',
    'yanglingnan': 'YEY',
    'yangliuqing': 'YQP',
    'yangmingbu': 'YVV',
    'yangpingguan': 'YAY',
    'yangpu': 'ABM',
    'yangqu': 'YQV',
    'yangquan': 'AQP',
    'yangquanbei': 'YPP',
    'yangquanqu': 'YYV',
    'yangshuling': 'YAD',
    'yangshuo': 'YCZ',
    'yangweishao': 'YWM',
    'yangxianxi': 'YXY',
    'yangxin': 'YON',
    'yangyi': 'ARP',
    'yangzhangzi': 'YZD',
    'yangzhewo': 'AEM',
    'yangzhou': 'YLH',
    'yanhecheng': 'YHP',
    'yanhui': 'AEP',
    'yanji': 'YJL',
    'yanjiao': 'AJP',
    'yanjiazhuang': 'AZK',
    'yanjin': 'AEW',
    'yanjixi': 'YXL',
    'yanliang': 'YNY',
    'yanling': 'YAG',
    'yanqi': 'YSR',
    'yanqing': 'YNP',
    'yanshan': 'AOP',
    'yanshi': 'YSF',
    'yantai': 'YAK',
    'yantainan': 'YLK',
    'yantaixi': 'YTK',
    'yantongshan': 'YSL',
    'yantongtun': 'YUX',
    'yanzhou': 'YZK',
    'yanzibian': 'YZY',
    'yaoan': 'YAC',
    'yaodu': 'AOJ',
    'yaojia': 'YAT',
    'yaoqianhutun': 'YQT',
    'yaoshang': 'ASP',
    'yatunpu': 'YTZ',
    'yayuan': 'YYL',
    'yazhou': 'YUQ',
    'yebaishou': 'YBD',
    'yecheng': 'YER',
    'yesanpo': 'AIP',
    'yian': 'YAX',
    'yibin': 'YBW',
    'yichang': 'YCN',
    'yichangdong': 'HAN',
    'yicheng': 'YIN',
    'yichun': 'YEG',
    'yichunxi': 'YCG',
    'yiershi': 'YET',
    'yijiang': 'RVH',
    'yijianpu': 'YJT',
    'yilaha': 'YLX',
    'yiliang': 'ALW',
    'yiliangbei': 'YSM',
    'yilin': 'YLB',
    'yima': 'YMF',
    'yimianpo': 'YPB',
    'yimianshan': 'YST',
    'yimin': 'YMX',
    'yinai': 'YVM',
    'yinan': 'YNK',
    'yinchuan': 'YIJ',
    'yindi': 'YDM',
    'yingbinlu': 'YFW',
    'yingcheng': 'YHN',
    'yingchengzi': 'YCT',
    'yingchun': 'YYB',
    'yingde': 'YDQ',
    'yingdexi': 'IIQ',
    'yingjie': 'YAM',
    'yingjisha': 'YIR',
    'yingkou': 'YKT',
    'yingkoudong': 'YGT',
    'yingpanshui': 'YZJ',
    'yingshan': 'NUW',
    'yingshang': 'YVH',
    'yingshouyingzi': 'YIP',
    'yingtan': 'YTG',
    'yingtanbei': 'YKG',
    'yingxian': 'YZV',
    'yining': 'YMR',
    'yiningdong': 'YNR',
    'yinlang': 'YJX',
    'yinping': 'KPQ',
    'yintan': 'CTQ',
    'yishui': 'YUK',
    'yitong': 'YTL',
    'yitulihe': 'YEX',
    'yiwu': 'YWH',
    'yixian': 'YXD',
    'yixing': 'YUH',
    'yiyang': 'AEQ',
    'yizheng': 'UZH',
    'yizhou': 'YSZ',
    'yizi': 'YQM',
    'yongan': 'YAS',
    'yonganxiang': 'YNB',
    'yongchengbei': 'RGH',
    'yongchuan': 'YCW',
    'yongchuandong': 'WMW',
    'yongdeng': 'YDJ',
    'yongding': 'YGS',
    'yongfengying': 'YYM',
    'yongfunan': 'YBZ',
    'yongji': 'YIV',
    'yongjia': 'URH',
    'yongjibei': 'AJV',
    'yongkang': 'RFH',
    'yongkangnan': 'QUH',
    'yonglang': 'YLW',
    'yongledian': 'YDY',
    'yongshou': 'ASY',
    'yongtai': 'YTS',
    'yongxiu': 'ACG',
    'yongzhou': 'AOQ',
    'youhao': 'YOB',
    'youxi': 'YXS',
    'youxian': 'YOG',
    'youxiannan': 'YXG',
    'youyang': 'AFW',
    'yuanbaoshan': 'YUD',
    'yuandun': 'YAJ',
    'yuanmou': 'YMM',
    'yuanping': 'YPV',
    'yuanqian': 'AQK',
    'yuanshi': 'YSP',
    'yuantan': 'YTQ',
    'yuanyangzhen': 'YYJ',
    'yucheng': 'YCK',
    'yuchengdong': 'YSK',
    'yuchengxian': 'IXH',
    'yuci': 'YCV',
    'yudu': 'YDG',
    'yuechi': 'AWW',
    'yuejiajing': 'YGJ',
    'yueliangtian': 'YUM',
    'yueqing': 'UPH',
    'yueshan': 'YBF',
    'yuexi': 'YHW',
    'yueyang': 'YYQ',
    'yueyangdong': 'YIQ',
    'yuge': 'VTM',
    'yuhang': 'EVH',
    'yujiang': 'YHG',
    'yujiapu': 'YKP',
    'yuliangpu': 'YLD',
    'yulin': 'ALY',
    'yumen': 'YXJ',
    'yunan': 'YKQ',
    'yuncailing': 'ACP',
    'yuncheng': 'YPK',
    'yunchengbei': 'ABV',
    'yundonghai': 'NAQ',
    'yunfudong': 'IXQ',
    'yunjusi': 'AFP',
    'yunlianghe': 'YEF',
    'yunmeng': 'YMN',
    'yunshan': 'KZQ',
    'yunxiao': 'YBS',
    'yuping': 'YZW',
    'yuquan': 'YQB',
    'yushan': 'YNG',
    'yushannan': 'YGG',
    'yushe': 'YSV',
    'yushi': 'YSJ',
    'yushu': 'YRT',
    'yushugou': 'YGP',
    'yushutai': 'YUT',
    'yushutun': 'YSX',
    'yutianxian': 'ATP',
    'yuxi': 'AXM',
    'yuxixi': 'YXM',
    'yuyao': 'YYH',
    'yuyaobei': 'CTH',
    'yuzhong': 'IZJ',
    'zaolin': 'ZIV',
    'zaoqiang': 'ZVP',
    'zaoyang': 'ZYN',
    'zaozhuang': 'ZEK',
    'zaozhuangdong': 'ZNK',
    'zaozhuangxi': 'ZFK',
    'zengjiapingzi': 'ZBW',
    'zengkou': 'ZKE',
    'zepu': 'ZPR',
    'zerunli': 'ZLM',
    'zhalainuoerxi': 'ZXX',
    'zhalantun': 'ZTX',
    'zhalute': 'ZLD',
    'zhangbaiwan': 'ZUP',
    'zhangdang': 'ZHT',
    'zhanggutai': 'ZGD',
    'zhangjiachuan': 'ZIJ',
    'zhangjiajie': 'DIQ',
    'zhangjiakou': 'ZKP',
    'zhangjiakounan': 'ZMP',
    'zhanglan': 'ZLV',
    'zhangmutou': 'ZOQ',
    'zhangmutoudong': 'ZRQ',
    'zhangping': 'ZPS',
    'zhangpu': 'ZCS',
    'zhangqiao': 'ZQY',
    'zhangqiu': 'ZTK',
    'zhangshu': 'ZSG',
    'zhangshudong': 'ZOG',
    'zhangweitun': 'ZWB',
    'zhangwu': 'ZWD',
    'zhangxian': 'ZXJ',
    'zhangxin': 'ZIP',
    'zhangye': 'ZYJ',
    'zhangyexi': 'ZEJ',
    'zhangzhou': 'ZUS',
    'zhangzhoudong': 'GOS',
    'zhanjiang': 'ZJZ',
    'zhanjiangxi': 'ZWQ',
    'zhaoan': 'ZDS',
    'zhaobai': 'ZBP',
    'zhaocheng': 'ZCV',
    'zhaodong': 'ZDB',
    'zhaofupu': 'ZFM',
    'zhaoguang': 'ZGB',
    'zhaohua': 'ZHW',
    'zhaoqing': 'ZVQ',
    'zhaoqingdong': 'FCQ',
    'zhaoshan': 'KWQ',
    'zhaotong': 'ZDW',
    'zhashui': 'ZSY',
    'zhazi': 'ZAL',
    'zhelimu': 'ZLC',
    'zhenan': 'ZEY',
    'zhenchengdi': 'ZDV',
    'zhengding': 'ZDP',
    'zhengdingjichang': 'ZHP',
    'zhengxiangbaiqi': 'ZXC',
    'zhengzhou': 'ZZF',
    'zhengzhoudong': 'ZAF',
    'zhengzhouxi': 'XPF',
    'zhenjiang': 'ZJH',
    'zhenjiangnan': 'ZEH',
    'zhenlai': 'ZLT',
    'zhenping': 'ZPF',
    'zhenxi': 'ZVT',
    'zhenyuan': 'ZUW',
    'zhian': 'ZAD',
    'zhicheng': 'ZCN',
    'zhifangdong': 'ZMN',
    'zhijiang': 'ZPQ',
    'zhijiangbei': 'ZIN',
    'zhijin': 'IZW',
    'zhijinbei': 'ZJE',
    'zhongchuanjichang': 'ZJJ',
    'zhonghe': 'ZHX',
    'zhonghuamen': 'VNH',
    'zhongjiacun': 'ZJY',
    'zhongkai': 'KKQ',
    'zhongmu': 'ZGF',
    'zhongning': 'VNJ',
    'zhongningdong': 'ZDJ',
    'zhongningnan': 'ZNJ',
    'zhongshan': 'ZSQ',
    'zhongshanbei': 'ZGQ',
    'zhongshanxi': 'ZAZ',
    'zhongwei': 'ZWJ',
    'zhongxiang': 'ZTN',
    'zhongzhai': 'ZZM',
    'zhoujia': 'ZOB',
    'zhoujiatun': 'ZOD',
    'zhoukou': 'ZKN',
    'zhoushuizi': 'ZIT',
    'zhuanghebei': 'ZUT',
    'zhuangqiao': 'ZQH',
    'zhuangzhi': 'ZUX',
    'zhucheng': 'ZQK',
    'zhuhai': 'ZHQ',
    'zhuhaibei': 'ZIQ',
    'zhuji': 'ZDH',
    'zhujiagou': 'ZUB',
    'zhujiawan': 'CWJ',
    'zhujiayao': 'ZUJ',
    'zhumadian': 'ZDN',
    'zhumadianxi': 'ZLN',
    'zhungeer': 'ZEC',
    'zhuozhou': 'ZXP',
    'zhuozhoudong': 'ZAP',
    'zhuozidong': 'ZDC',
    'zhuozishan': 'ZZC',
    'zhurihe': 'ZRC',
    'zhusihua': 'ZHD',
    'zhuwo': 'ZOP',
    'zhuyuanba': 'ZAW',
    'zhuzhou': 'ZZQ',
    'zhuzhounan': 'KVQ',
    'zhuzhouxi': 'ZAQ',
    'zibo': 'ZBK',
    'zichang': 'ZHY',
    'zigong': 'ZGW',
    'zijingguan': 'ZYP',
    'zixi': 'ZXS',
    'ziyang': 'ZYW',
    'ziyangbei': 'FYW',
    'zizhong': 'ZZW',
    'zizhongbei': 'WZW',
    'zizhou': 'ZZY',
    'zongxi': 'ZOY',
    'zoucheng': 'ZIK',
    'zunyi': 'ZYE',
    'zunyinan': 'ZNE',
    'zunyixi': 'ZIW',
    'zuoling': 'ZSN'}

  tickets.py

"""Train tickets query via command-line.
tickets.py

Usage:
    tickets [-gdtkz] <from> <to> <date>

Options:
    -h,--help   显示帮助菜单
    -g          高铁
    -d          动车
    -t          特快
    -k          快速
    -z          直达

Example:
    tickets -gdt beijing shanghai 2016-08-25
"""
import requests
from docopt import docopt
#from stations import stations
from stations import stations
# from pprint import pprint
from train import TrainCollection

class SelectTrain(object):

    def __init__(self):
        """
        获取命令行输入的参数
        """
        self.args = docopt(__doc__)#这个是获取命令行的所有参数,返回的是一个字典


    def cli(self):
        """command-line interface"""
        # 获取 出发站点和目标站点
        from_station = stations.get(self.args['<from>']) #出发站点
        to_station = stations.get(self.args['<to>']) # 目的站点
        leave_time = self._get_leave_time()# 出发时间

        url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate={0}&from_station={1}&to_station={2}'.format(
            leave_time,from_station,to_station)# 拼接请求列车信息的Url

        # 获取列车查询结果
        r = requests.get(url,verify=False)
        traindatas = r.json()['data']['datas'] # 返回的结果,转化成json格式,取出datas,方便后面解析列车信息用

        # 解析列车信息
        traintypes = self._get_traintype()
        views = TrainCollection(traindatas,traintypes)
        views.print_pretty()

    def _get_traintype(self):
        """
        获取列车型号,这个函数的作用是的目的是:当你输入 -g 是只是返回 高铁,输入 -gd 返回动车和高铁,当不输参数时,返回所有的列车信息
        """        
        traintypes = ['-g','-d','-t','-k','-z']
        # result = []
        # for traintype in traintypes:
        #     if self.args[traintype]:
        #         result.append(traintype[-1].upper())

        trains = [traintype[-1].upper() for traintype in traintypes if self.args[traintype]]
        if trains:
            return trains
        else:
            return ['G','D','T','K','Z']

    def _get_leave_time(self):
        """
        获取出发时间,这个函数的作用是为了:时间可以输入两种格式:2016-10-05、20161005
        """
        leave_time = self.args['<date>']
        if len(leave_time) == 8:
            return '{0}-{1}-{2}'.format(leave_time[:4],leave_time[4:6],leave_time[6:])

        if '-' in leave_time:
            return leave_time


if __name__ == '__main__':
    cli = SelectTrain()
    cli.cli()

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:sqlalchemy外键关联

下一篇:Python3 的分支与循环