python基于requests库实现12306火车票余票信息以及票价信息查询

个人的需求就是实现一个简单的火车信息查询,输入出发地,目的地,出发日期,便能得到所有车次信息余票信息以及票价信息。

代码如下:基于python3实现

 

# coding=utf-8
import requests
from prettytable import PrettyTable #美化库,PrettyTable模块可以将输出内容如表格方式整齐地输出
import re
from pprint import pprint #用于打印 Python 数据结构,输入格式整齐便于阅读
from time import sleep
from colorama import Fore, Back, Style # 一个python专门用来在控制台、命令行输出彩色文字的模块,Fore是针对字体颜色,Back是针对字体背景颜色,Style是针对字体格式

#全局变量stations,数据通过运行get_stations()函数获得
stations = {'滨海': 'FHP', '白音胡硕': 'BCD', '舍力虎': 'VLD', '龙井': 'LJL', '查布嘎': 'CBC', '喇嘛甸': 'LMX', '兰溪': 'LWH', '沧州西': 'CBP', '林海': 'LXX', '大雁': 'DYX', '宁国': 'NNH', '朝阳镇': 'CZL', '茶陵': 'CDG', '温州': 'RZH', '哈尔滨': 'HBB', '库都尔': 'KDX', '城阳': 'CEK', '阜新南': 'FXD', '成吉思汗': 'CJX', '禹城': 'YCK', '漯河西': 'LBN', '孝南': 'XNV', '福山镇': 'FZQ', '官厅': 'GTP', '越西': 'YHW', '登沙河': 'DWT', '哈达铺': 'HDJ', '鄂州': 'ECN', '海阳': 'HYK', '和平': 'VAQ', '吉林': 'JLL', '黄陵': 'ULY', '雁翅': 'YAP', '溧阳': 'LEH', '砚川': 'YYY', '纸坊东': 'ZMN', '王府': 'WUT', '海宁西': 'EUH', '南平': 'NPS', '北碚': 'BPW', '丹东西': 'RWT', '渭津': 'WJL', '长寿': 'EFW', '杏树屯': 'XDT', '伊春': 'YCB', '临颍': 'LNF', '田阳': 'TRZ', '广德': 'GRH', '朝天南': 'CTY', '上海南': 'SNH', '仙桃西': 'XAN', '蔡家崖': 'EBV', '交城': 'JNV', '蒙自北': 'MBM', '营城子': 'YCT', '朱家窑': 'ZUJ', '滦平': 'UPP', '绕阳河': 'RHD', '藁城南': 'GUP', '临汾西': 'LXV', '鹰潭': 'YTG', '南阳寨': 'NYF', '修武': 'XWF', '铁力': 'TLB', '遂平': 'SON', '松江南': 'IMH', '屏边': 'PBM', '永乐店': 'YDY', '太原南': 'TNV', '溆浦南': 'EMQ', '随州': 'SZN', '纪家沟': 'VJD', '江山': 'JUH', '黎城': 'UCP', '安陆': 'ALN', '平原堡': 'PPJ', '长汀镇': 'CDB', '黑井': 'HIM', '沙河市': 'VOP', '正镶白旗': 'ZXC', '郫县西': 'PCW', '余杭': 'EVH', '万乐': 'WEB', '甘泉北': 'GEY', '北海': 'BHZ', '建水': 'JSM', '许家台': 'XTJ', '骆驼巷': 'LTJ', '七甸': 'QDM', '西阳村': 'XQF', '商洛': 'OLY', '宜耐': 'YVM', '经棚': 'JPC', '武夷山': 'WAS', '恩平': 'PXQ', '田林': 'TFZ', '合肥南': 'ENH', '凤阳': 'FUH', '范家屯': 'FTT', '定州': 'DXP', '安仁': 'ARG', '杨岗': 'YRB', '景泰': 'JTJ', '隆化': 'UHP', '临河': 'LHC', '重庆北': 'CUW', '砀山南': 'PRH', '万源': 'WYY', '黑旺': 'HWK', '夏官营': 'XGJ', '高山子': 'GSD', '双鸭山': 'SSB', '坂田': 'BTQ', '龙里北': 'KFW', '沙坪坝': 'CYW', '日照': 'RZK', '元谋': 'YMM', '平遥': 'PYV', '班猫箐': 'BNM', '石柱县': 'OSW', '防城港北': 'FBZ', '三江县': 'SOZ', '眉山东': 'IUW', '平湖': 'PHQ', '呼兰': 'HUB', '白芨沟': 'BJJ', '灵丘': 'LVV', '林盛堡': 'LBT', '黄花筒': 'HUD', '南河川': 'NHJ', '李旺': 'VLJ', '云居寺': 'AFP', '离堆公园': 'INW', '百色': 'BIZ', '同心': 'TXJ', '宣城': 'ECH', '宁海': 'NHH', '昆山': 'KSH', '红岘台': 'HTJ', '彭阳': 'PYJ', '犀浦': 'XIW', '本溪': 'BXT', '古城镇': 'GZB', '鼎湖东': 'UWQ', '阳新': 'YON', '樟木头': 'ZOQ', '东升': 'DRQ', '眉山': 'MSW', '石林南': 'LNM', '嫩江': 'NGX', '通辽': 'TLD', '徐州': 'XCH', '洛阳': 'LYF', '马龙': 'MGM', '玉山南': 'YGG', '霍城': 'SER', '朱家沟': 'ZUB', '金州': 'JZT', '长兴': 'CBH', '兴安北': 'XDZ', '南昌': 'NCG', '黄冈东': 'KAN', '代县': 'DKV', '鲘门': 'KMQ', '南江': 'FIW', '六盘山': 'UPJ', '巩义南': 'GYF', '小金口': 'NKQ', '上板城南': 'OBP', '敦化': 'DHL', '大竹园': 'DZY', '绍兴北': 'SLH', '永修': 'ACG', '韶山': 'SSQ', '亚布力南': 'YWB', '新肇': 'XZT', '玛纳斯湖': 'MNR', '廊坊': 'LJP', '红安': 'HWN', '永寿': 'ASY', '哈尔滨东': 'VBB', '惠农': 'HMJ', '加格达奇': 'JGX', '徽县': 'HYY', '西安北': 'EAY', '廊坊北': 'LFP', '壮志': 'ZUX', '塘沽': 'TGP', '长沙西': 'RXQ', '郫县': 'PWW', '博兴': 'BXK', '固原': 'GUJ', '大成': 'DCT', '杭州': 'HZH', '渭南南': 'WVY', '旗下营': 'QXC', '石门县': 'OMQ', '吐鲁番北': 'TAR', '西平': 'XPN', '富海': 'FHX', '云山': 'KZQ', '渭源': 'WEJ', '大通西': 'DTO', '邯郸': 'HDP', '菇园': 'GYL', '松树': 'SFT', '咸宁': 'XNN', '光泽': 'GZS', '武义': 'RYH', '毛陈': 'MHN', '德阳': 'DYW', '得耳布尔': 'DRX', '阳东': 'WLQ', '马三家': 'MJT', '南头': 'NOQ', '侯马': 'HMV', '萨拉齐': 'SLC', '合川': 'WKW', '五叉沟': 'WCT', '七台河': 'QTB', '巨野': 'JYK', '盖州西': 'GAT', '澧县': 'LEQ', '吕梁': 'LHV', '韦庄': 'WZY', '里木店': 'LMB', '抚顺北': 'FET', '小哨': 'XAM', '八步': 'BBE', '龙泉寺': 'UQJ', '米沙子': 'MST', '三江南': 'SWZ', '惠州': 'HCQ', '张家口南': 'ZMP', '天祝': 'TZJ', '红江': 'HFM', '海湾': 'RWH', '芦台': 'LTP', '西湖东': 'WDQ', '海龙': 'HIL', '阳城': 'YNF', '超梁沟': 'CYP', '亚龙湾': 'TWQ', '香兰': 'XNB', '贵阳东': 'KEW', '中宁南': 'ZNJ', '斜河涧': 'EEP', '花湖': 'KHN', '新乐': 'ELP', '秦安': 'QGJ', '磐安镇': 'PAJ', '依安': 'YAX', '耒阳西': 'LPQ', '小村': 'XEM', '开封北': 'KBF', '湘府路': 'FVQ', '温春': 'WDB', '霞浦': 'XOS', '白河': 'BEL', '犀浦东': 'XAW', '江都': 'UDH', '沈阳北': 'SBT', '延吉西': 'YXL', '春湾': 'CQQ', '鹿寨': 'LIZ', '五通': 'WTZ', '永康': 'RFH', '南通': 'NUH', '武汉': 'WHN', '万年': 'WWG', '广安': 'VJW', '东胜': 'DOC', '商都': 'SXC', '隆安东': 'IDZ', '宁明': 'NMZ', '昆都仑召': 'KDC', '皋兰': 'GEJ', '武安': 'WAP', '怀柔': 'HRP', '常平南': 'FPQ', '王团庄': 'WZJ', '后湖': 'IHN', '歙县北': 'NPH', '甲山': 'JOP', '绍兴东': 'SSH', '巴楚': 'BCR', '呼和浩特东': 'NDC', '湘乡': 'XXQ', '永嘉': 'URH', '仲恺': 'KKQ', '五龙背东': 'WMT', '新乡': 'XXF', '宁强南': 'NOY', '聊城': 'UCK', '灌水': 'GST', '墨玉': 'MUR', '靖宇': 'JYL', '林口': 'LKB', '乌兰察布': 'WPC', '连云港东': 'UKH', '西哲里木': 'XRD', '三江口': 'SKD', '兴泉堡': 'XQJ', '鞍山': 'AST', '渭南北': 'WBY', '南靖': 'NJS', '井店': 'JFP', '背荫河': 'BYB', '珠海': 'ZHQ', '南宫东': 'NFP', '德州东': 'DIP', '王瞳': 'WTP', '盘山': 'PUD', '兴凯': 'EKB', '沙后所': 'SSD', '青白江东': 'QFW', '武胜': 'WSE', '肃宁': 'SYP', '大涧': 'DFP', '神池': 'SMV', '长葛': 'CEF', '泗阳': 'MPH', '龙丰': 'KFQ', '融安': 'RAZ', '丹阳': 'DYH', '海坨子': 'HZT', '景德镇': 'JCG', '资中': 'ZZW', '龙口市': 'UKK', '奉化': 'FHH', '乌拉山': 'WSC', '上杭': 'JBS', '玉屏': 'YZW', '读书铺': 'DPM', '瑞昌西': 'RXG', '大荔': 'DNY', '淮滨': 'HVN', '浠水': 'XZN', '热水': 'RSD', '咋子': 'ZAL', '东海': 'DHB', '兰陵北': 'COK', '博白': 'BBZ', '临泽南': 'LDJ', '宝龙山': 'BND', '白沙铺': 'BSN', '白音华南': 'FNC', '肇庆东': 'FCQ', '福安': 'FAS', '清徐': 'QUV', '湛江': 'ZJZ', '南雄': 'NCQ', '独山': 'RWW', '秀山': 'ETW', '合肥北城': 'COH', '芦沟': 'LOM', '五原': 'WYC', '桂林北': 'GBZ', '大灰厂': 'DHP', '新兴县': 'XGQ', '安龙': 'AUZ', '梅州': 'MOQ', '汾阳': 'FAV', '通北': 'TBB', '安康': 'AKY', '保定东': 'BMP', '遂宁': 'NIW', '大坝': 'DBJ', '邯郸东': 'HPP', '二营': 'RYJ', '曹县': 'CXK', '清水北': 'QEJ', '枣阳': 'ZYN', '金山北': 'EGH', '布列开': 'BLR', '顺德学院': 'OJQ', '庙岭': 'MLL', '三亚': 'SEQ', '海宁': 'HNH', '广汉': 'GHW', '烟筒屯': 'YUX', '河间西': 'HXP', '萍乡': 'PXG', '马鞍山东': 'OMH', '武乡': 'WVV', '大战场': 'DTJ', '北京北': 'VAP', '姜家': 'JJB', '火连寨': 'HLT', '桥西': 'QXJ', '青川': 'QCE', '岳家井': 'YGJ', '满归': 'MHX', '阿龙山': 'ASX', '定陶': 'DQK', '鹿道': 'LDL', '普湾': 'PWT', '通途': 'TUT', '文登东': 'WGK', '如东': 'RIH', '南平南': 'NNS', '上园': 'SUD', '南仇': 'NCK', '东来': 'RVD', '六道河子': 'LVP', '合阳': 'HAY', '楚雄': 'CUM', '三义井': 'OYD', '包头东': 'BDC', '贺胜桥东': 'HLN', '贵阳': 'GIW', '来宾': 'UBZ', '王兆屯': 'WZB', '平房': 'PFB', '灵石': 'LSV', '昆明南': 'KOM', '福州': 'FZS', '东海县': 'DQH', '衡水': 'HSP', '兰州': 'LZJ', '松山湖北': 'KUQ', '黄口': 'KOH', '沙县': 'SAS', '五道河': 'WHP', '吉文': 'JWX', '暖泉': 'NQJ', '普安': 'PAN', '立志': 'LZX', '惠山': 'VCH', '下城子': 'XCB', '娄底': 'LDQ', '长阳': 'CYN', '佛山': 'FSQ', '王安镇': 'WVP', '云浮东': 'IXQ', '熊岳城': 'XYT', '张掖西': 'ZEJ', '宝鸡南': 'BBY', '铜仁': 'RDQ', '中宁东': 'ZDJ', '烟筒山': 'YSL', '泰州': 'UTH', '章党': 'ZHT', '石山': 'SAD', '汝阳': 'RYF', '洋河': 'GTH', '瑞昌': 'RCG', '临汾': 'LFV', '元宝山': 'YUD', '东明村': 'DMD', '阜南': 'FNH', '白河县': 'BEY', '大英东': 'IAW', '阳岔': 'YAL', '伊敏': 'YMX', '丰城': 'FCG', '大杖子': 'DAP', '平安': 'PAL', '百宜': 'FHW', '明港': 'MGN', '宜春西': 'YCG', '朝阳地': 'CDD', '黄羊镇': 'HYJ', '锦界': 'JEY', '承德东': 'CCP', '大石头': 'DSL', '兖州': 'YZK', '南芬北': 'NUT', '繁昌西': 'PUH', '刘家河': 'LVT', '德令哈': 'DHO', '石龙': 'SLQ', '无锡': 'WXH', '左岭': 'ZSN', '东戌': 'RXP', '齐齐哈尔': 'QHX', '兴宁': 'ENQ', '金华南': 'RNH', '彭山北': 'PPW', '宝坻': 'BPP', '白音他拉': 'BID', '荣成': 'RCK', '田东': 'TDZ', '高花': 'HGD', '广州东': 'GGQ', '东通化': 'DTL', '沈家河': 'OJJ', '娄山关南': 'LSE', '凤州': 'FZY', '黄村': 'HCP', '峡江': 'EJG', '长坡岭': 'CPM', '新安县': 'XAF', '石人': 'SRL', '宜兴': 'YUH', '盘州': 'PAE', '羊臼河': 'YHM', '资阳': 'ZYW', '泉州东': 'QRS', '台州': 'TZH', '嘉善': 'JSH', '岱岳': 'RYV', '洋县西': 'YXY', '漳浦': 'ZCS', '义乌': 'YWH', '霍州': 'HZV', '沧州': 'COP', '合浦': 'HVZ', '营盘水': 'YZJ', '小岭': 'XLB', '桐柏': 'TBF', '东津': 'DKB', '福清': 'FQS', '中卫': 'ZWJ', '贵溪': 'GXG', '柳州': 'LZZ', '卓资东': 'ZDC', '容桂': 'RUQ', '融水': 'RSZ', '怀集': 'FAQ', '原平': 'YPV', '阿勒泰': 'AUR', '黄土店': 'HKP', '潞城': 'UTP', '洛湾三江': 'KRW', '新绛': 'XJV', '神木南': 'OMY', '东二道河': 'DRB', '李石寨': 'LET', '天桥岭': 'TQL', '安顺西': 'ASE', '岩会': 'AEP', '英德': 'YDQ', '黄山': 'HKH', '高邑西': 'GNP', '嘉峰': 'JFF', '闵集': 'MJN', '博乐': 'BOR', '榆树屯': 'YSX', '平台': 'PVT', '内江': 'NJW', '李家坪': 'LIJ', '布海': 'BUT', '合阳北': 'HTY', '呼鲁斯太': 'VTJ', '黄石东': 'OSN', '阿巴嘎旗': 'AQC', '贵定县': 'KIW', '北京西': 'BXP', '柳河': 'LNL', '平坝南': 'PBE', '勉县': 'MVY', '河口南': 'HKJ', '大石桥': 'DQT', '峨眉山': 'IXW', '钟家村': 'ZJY', '霍林郭勒': 'HWD', '岷县': 'MXJ', '前进镇': 'QEB', '大武口': 'DFJ', '永郎': 'YLW', '谭家井': 'TNJ', '三道湖': 'SDL', '胶州': 'JXK', '花桥': 'VQH', '石林西': 'SYM', '共青城': 'GAG', '三营': 'OEJ', '安广': 'AGT', '阜阳': 'FYH', '彰武': 'ZWD', '德伯斯': 'RDT', '都匀': 'RYW', '平度': 'PAK', '潍坊': 'WFK', '安阳东': 'ADF', '大口屯': 'DKP', '暮云': 'KIQ', '白云鄂博': 'BEC', '松江河': 'SJL', '南充北': 'NCE', '苏尼特左旗': 'ONC', '五五': 'WVR', '潮阳': 'CNQ', '汉阴': 'HQY', '鸡东': 'JOB', '平果': 'PGZ', '台安南': 'TAD', '如皋': 'RBH', '永济': 'YIV', '灵璧': 'GMH', '通安驿': 'TAJ', '绅坊': 'OLH', '东明县': 'DNF', '土牧尔台': 'TRC', '沙海': 'SED', '皮口南': 'PKT', '乌西': 'WXR', '阳澄湖': 'AIH', '丰城南': 'FNG', '山坡东': 'SBN', '安平': 'APT', '沿河城': 'YHP', '低庄': 'DVQ', '兴城': 'XCD', '瓦屋山': 'WAH', '陆良': 'LRM', '大林': 'DLD', '孤山口': 'GSP', '孙镇': 'OZY', '重庆南': 'CRW', '黄石': 'HSN', '襄河': 'XXB', '开封': 'KFF', '大其拉哈': 'DQX', '保定': 'BDP', '准格尔': 'ZEC', '徐州东': 'UUH', '开鲁': 'KLC', '桑根达来': 'OGC', '东乡': 'DXG', '土桥子': 'TQJ', '歙县': 'OVH', '涡阳': 'GYH', '长沙': 'CSQ', '酉阳': 'AFW', '榆林': 'ALY', '祥云': 'XQM', '高碑店': 'GBP', '黄陵南': 'VLY', '沁县': 'QVV', '康熙岭': 'KXZ', '海林': 'HRB', '霍邱': 'FBH', '贵定': 'GTW', '吴家屯': 'WJT', '项城': 'ERN', '范镇': 'VZK', '松树镇': 'SSL', '河唇': 'HCZ', '微子镇': 'WQP', '余姚': 'YYH', '岢岚': 'KLV', '栟茶': 'FWH', '武功': 'WGY', '大盘石': 'RPP', '广宁寺南': 'GNT', '南京': 'NJH', '昌黎': 'CLP', '西安': 'XAY', '兴和西': 'XEC', '乾县': 'QBY', '延吉': 'YJL', '陵水': 'LIQ', '向塘': 'XTG', '平洋': 'PYX', '葛根庙': 'GGT', '赵光': 'ZGB', '露水河': 'LUL', '东城南': 'IYQ', '金杖子': 'JYD', '庙庄': 'MZJ', '格尔木': 'GRO', '草河口': 'CKT', '青岛北': 'QHK', '明港东': 'MDN', '古田会址': 'STS', '云彩岭': 'ACP', '西大庙': 'XMP', '秦皇岛': 'QTP', '大堡': 'DVT', '磁西': 'CRP', '武隆': 'WLW', '哈密': 'HMR', '三水南': 'RNQ', '豆罗': 'DLV', '梧州': 'WZZ', '北安': 'BAB', '海伦': 'HLB', '海口东': 'HMQ', '牛家': 'NJB', '朗乡': 'LXB', '鲁山': 'LAF', '碾子山': 'NZX', '树木岭': 'FMQ', '甘草店': 'GDJ', '枝城': 'ZCN', '枣庄东': 'ZNK', '克拉玛依': 'KHR', '石城': 'SCT', '株洲南': 'KVQ', '舒城': 'OCH', '东光': 'DGP', '扬州': 'YLH', '龙川': 'LUQ', '肇庆': 'ZVQ', '古田': 'GTS', '和硕': 'VUR', '长岭子': 'CLT', '温岭': 'VHH', '江永': 'JYZ', '李家': 'LJB', '汤旺河': 'THB', '禹城东': 'YSK', '枝江北': 'ZIN', '静海': 'JHP', '新林': 'XPX', '宜昌东': 'HAN', '定州东': 'DOP', '东湾': 'DRJ', '瓦房店西': 'WXT', '莱西北': 'LBK', '应县': 'YZV', '蒲城': 'PCY', '浑河': 'HHT', '雷州': 'UAQ', '桃村': 'TCK', '桐梓北': 'TBE', '泰和': 'THG', '黄羊滩': 'HGJ', '胜芳': 'SUP', '抚宁': 'FNP', '芦溪': 'LUG', '城子坦': 'CWT', '滨海北': 'FCP', '大兴': 'DXX', '老边': 'LLT', '辛集': 'ENP', '岳阳': 'YYQ', '柳林南': 'LKV', '惠州南': 'KNQ', '祁县': 'QXV', '红寺堡': 'HSJ', '西宁': 'XNO', '北流': 'BOZ', '红砂岘': 'VSJ', '两家': 'UJT', '萍乡北': 'PBG', '北营': 'BIV', '黄河景区': 'HCF', '大理': 'DKM', '吉首': 'JIQ', '燕岗': 'YGW', '冕宁': 'UGW', '太和北': 'JYN', '霍州东': 'HWV', '资中北': 'WZW', '向阳': 'XDB', '汉源': 'WHW', '北京南': 'VNP', '南宁西': 'NXZ', '柏果': 'BGM', '石头': 'OTB', '南丹': 'NDZ', '汾河': 'FEV', '兴业': 'SNZ', '官字井': 'GOT', '会昌北': 'XEG', '下社': 'XSV', '横道河子': 'HDB', '三汇镇': 'OZW', '日喀则': 'RKO', '狼尾山': 'LRJ', '开化': 'KHU', '江源': 'SZL', '哈尔滨北': 'HTB', '烟台': 'YAK', '库尔勒': 'KLR', '二道沟门': 'RDP', '姚千户屯': 'YQT', '明珠': 'MFQ', '迎春': 'YYB', '陶赖昭': 'TPT', '七里河': 'QLD', '八方山': 'FGQ', '胶州北': 'JZK', '莱西': 'LXK', '东戴河': 'RDD', '豆庄': 'ROP', '新华屯': 'XAX', '小榄': 'EAQ', '永安': 'YAS', '莒县': 'JKK', '京山': 'JCN', '伊尔施': 'YET', '益阳': 'AEQ', '彭山': 'PSW', '青州市': 'QZK', '成都东': 'ICW', '资阳北': 'FYW', '民和南': 'MNO', '钟山西': 'ZAZ', '和什托洛盖': 'VSR', '辽源': 'LYL', '吐哈': 'THR', '乃林': 'NLD', '景德镇北': 'JDG', '春阳': 'CAL', '四方台': 'STB', '岳阳东': 'YIQ', '蛟河西': 'JOL', '柳园': 'DHR', '裴德': 'PDB', '灵宝西': 'LPF', '三家店': 'ODP', '沙岭子': 'SLP', '泗水': 'OSK', '鹤庆': 'HQM', '唐山': 'TSP', '乐都南': 'LVO', '饶平': 'RVQ', '韶山南': 'INQ', '公庙子': 'GMC', '盐池': 'YKJ', '隆昌': 'LCW', '湘潭': 'XTQ', '湛江西': 'ZWQ', '永泰': 'YTS', '张家川': 'ZIJ', '金宝屯': 'JBD', '桂林': 'GLZ', '大红旗': 'DQD', '麓谷': 'BNQ', '美兰': 'MHQ', '新津南': 'ITW', '新余北': 'XBG', '礼泉': 'LGY', '靖州': 'JEQ', '双牌': 'SBZ', '江油': 'JFW', '全州南': 'QNZ', '石峡子': 'SXJ', '烟台南': 'YLK', '珠海北': 'ZIQ', '阜宁': 'AKH', '昌图西': 'CPT', '永川': 'YCW', '军粮城北': 'JMP', '高台南': 'GAJ', '新立屯': 'XLD', '大丰': 'KRQ', '马踏': 'PWQ', '龙嘉': 'UJL', '源迁': 'AQK', '册亨': 'CHZ', '南博山': 'NBK', '贵安': 'GAE', '东边井': 'DBB', '青城山': 'QSW', '马桥河': 'MQB', '杜家': 'DJL', '杨杖子': 'YZD', '马兰': 'MLR', '永登': 'YDJ', '珞璜南': 'LNE', '孙吴': 'SKB', '定襄': 'DXV', '牙屯堡': 'YTZ', '镇远': 'ZUW', '常庄': 'CVK', '金沟屯': 'VGP', '玉林': 'YLZ', '麻山': 'MAB', '九江': 'JJG', '深圳东': 'BJQ', '西街口': 'EKM', '轮台': 'LAR', '槐荫': 'IYN', '桦南': 'HNB', '珠琳': 'ZOM', '都昌': 'DCG', '沙城': 'SCP', '文水': 'WEV', '崇仁': 'CRG', '乐山': 'IVW', '开安': 'KAT', '双流西': 'IQW', '临湘': 'LXQ', '桥头': 'QAT', '午汲': 'WJP', '明城': 'MCL', '千阳': 'QOY', '武昌': 'WCN', '平型关': 'PGV', '高安': 'GCG', '中牟': 'ZGF', '瓜州': 'GZJ', '莒南': 'JOK', '阿克陶': 'AER', '兰州新区': 'LQJ', '石嘴山': 'QQJ', '威海北': 'WHK', '东莞东': 'DMQ', '泾县': 'LOH', '南城': 'NDG', '深圳西': 'OSQ', '五龙背': 'WBT', '公主岭南': 'GBT', '曲靖北': 'QBM', '正定': 'ZDP', '松河': 'SBM', '嘉兴': 'JXH', '玉溪': 'AXM', '燕子砭': 'YZY', '轩岗': 'XGV', '惠东': 'KDQ', '鳌江': 'ARH', '商丘': 'SQF', '神州': 'SRQ', '五常': 'WCB', '开阳': 'KVW', '清涧县': 'QNY', '宝华山': 'BWH', '石桥': 'SQE', '源潭': 'YTQ', '拉鲊': 'LEM', '棠海': 'THM', '蕲春': 'QRN', '玉舍': 'AUM', '景州': 'JEP', '鸡冠山': 'JST', '疏勒': 'SUR', '西安南': 'CAY', '灵宝': 'LBF', '枣林': 'ZIV', '铜仁南': 'TNW', '天河机场': 'TJN', '新李': 'XLJ', '陈官营': 'CAJ', '稷山': 'JVV', '富县': 'FEY', '祁东北': 'QRQ', '乐都': 'LDO', '珠窝': 'ZOP', '普者黑': 'PZM', '武穴': 'WXN', '安定': 'ADP', '彭州': 'PMW', '子长': 'ZHY', '株洲': 'ZZQ', '喜德': 'EDW', '红彦': 'VIX', '承德': 'CDP', '拉林': 'LAB', '长治北': 'CBF', '天镇': 'TZV', '海安': 'HIH', '涿州东': 'ZAP', '威舍': 'WSM', '西峡': 'XIF', '上高镇': 'SVK', '驻马店': 'ZDN', '南木': 'NMX', '新友谊': 'EYB', '双吉': 'SML', '南京南': 'NKH', '乌拉特前旗': 'WQC', '平邑': 'PIK', '英吉沙': 'YIR', '三河县': 'OXP', '淮北': 'HRH', '大营': 'DYV', '水洞': 'SIL', '南口': 'NKP', '连山关': 'LGT', '安塘': 'ATV', '黔江': 'QNW', '泉阳': 'QYL', '卢龙': 'UAP', '南召': 'NAF', '民权北': 'MIF', '小得江': 'EJM', '永福南': 'YBZ', '蔺家楼': 'ULK', '樟树': 'ZSG', '杨树岭': 'YAD', '罗江': 'LJW', '贺家店': 'HJJ', '陵城': 'LGK', '大明湖': 'JAK', '新安': 'EAM', '阳泉曲': 'YYV', '汨罗': 'MLQ', '天门': 'TMN', '开原': 'KYT', '南湖东': 'NDN', '凤凰城': 'FHT', '乐平市': 'LPG', '平安镇': 'PZT', '忻州': 'XXV', '获嘉': 'HJF', '山海关': 'SHD', '西固城': 'XUJ', '老城镇': 'ACQ', '绥中北': 'SND', '嘎什甸子': 'GXD', '黄松甸': 'HDL', '农安': 'NAT', '白涧': 'BAP', '桓台': 'VTK', '深州': 'OZP', '普宁': 'PEQ', '白奎堡': 'BKB', '临澧': 'LWQ', '文地': 'WNZ', '德兴东': 'DDG', '济宁': 'JIK', '到保': 'RBT', '宿州': 'OXH', '葵潭': 'KTQ', '内乡': 'NXF', '徘徊北': 'PHP', '九三': 'SSX', '广南县': 'GXM', '毛坝关': 'MGY', '治安': 'ZAD', '滕州东': 'TEK', '海石湾': 'HSO', '分宜': 'FYG', '苍南': 'CEH', '汉中': 'HOY', '羊尾哨': 'YWM', '大关': 'RGW', '揭阳': 'JRQ', '涵江': 'HJS', '六合镇': 'LEX', '曲江': 'QIM', '蒲城东': 'PEY', '浮图峪': 'FYP', '无锡新区': 'IFH', '江宁西': 'OKH', '清原': 'QYT', '闻喜': 'WXV', '南华北': 'NHS', '米易': 'MMW', '迤资': 'YQM', '红兴隆': 'VHB', '南昌西': 'NXG', '神头': 'SEV', '精河南': 'JIR', '亚布力': 'YBB', '密云北': 'MUP', '延庆': 'YNP', '乐昌东': 'ILQ', '天津西': 'TXP', '孟家岗': 'MGB', '闽清北': 'MBS', '沂水': 'YUK', '广汉北': 'GVW', '红花沟': 'VHD', '龙南': 'UNG', '濮阳': 'PYF', '攸县': 'YOG', '滨州': 'BIK', '贵港': 'GGZ', '四道湾': 'OUD', '涉县': 'OEP', '兰岗': 'LNB', '铁岭': 'TLT', '常平东': 'FQQ', '野三坡': 'AIP', '唐家湾': 'PDQ', '庆丰': 'QFT', '黄石北': 'KSN', '华容东': 'HPN', '兴平': 'XPY', '四平': 'SPT', '株洲西': 'ZAQ', '吴家川': 'WCJ', '双辽': 'ZJD', '福鼎': 'FES', '溧水': 'LDH', '塔石嘴': 'TIM', '新杖子': 'ERP', '黑水': 'HOT', '新津': 'IRW', '鹤北': 'HMB', '龙华': 'LHP', '靖远西': 'JXJ', '诸暨': 'ZDH', '藤县': 'TAZ', '下台子': 'EIP', '惠安': 'HNS', '诸城': 'ZQK', '茶卡': 'CVO', '师庄': 'SNM', '白音察干': 'BYC', '西小召': 'XZC', '营街': 'YAM', '喀喇其': 'KQX', '阿南庄': 'AZM', '庆盛': 'QSQ', '电白': 'NWQ', '驻马店西': 'ZLN', '古东': 'GDV', '二道湾': 'RDX', '徐闻': 'XJQ', '三十里堡': 'SST', '信阳东': 'OYN', '怀化': 'HHQ', '庐江': 'UJH', '沙河': 'SHP', '滕州': 'TXK', '小寺沟': 'ESP', '甸心': 'DXM', '土门子': 'TCJ', '遵义南': 'ZNE', '三明北': 'SHS', '张兰': 'ZLV', '赤峰': 'CFD', '钦州': 'QRZ', '平凉南': 'POJ', '卫星': 'WVB', '即墨北': 'JVK', '米脂': 'MEY', '阳明堡': 'YVV', '阳高': 'YOV', '端州': 'WZQ', '襄垣': 'EIF', '万宁': 'WNQ', '五台山': 'WSV', '白沙坡': 'BPM', '嘉祥': 'JUK', '千河': 'QUY', '淄博': 'ZBK', '巴东': 'BNN', '榆次': 'YCV', '兴义': 'XRZ', '乳山': 'ROK', '漠河': 'MVX', '高各庄': 'GGP', '白河东': 'BIY', '赤壁': 'CBN', '下花园': 'XYP', '察素齐': 'CSC', '运城': 'YNV', '果松': 'GSL', '东营': 'DPK', '周口': 'ZKN', '宽甸': 'KDT', '林西': 'LXC', '新青': 'XQB', '双阳': 'OYT', '石桥子': 'SQT', '石岘': 'SXL', '康庄': 'KZP', '月亮田': 'YUM', '吴官田': 'WGM', '南丰': 'NFG', '羊者窝': 'AEM', '临海': 'UFH', '红光镇': 'IGW', '漳州东': 'GOS', '赛汗塔拉': 'SHC', '阳平关': 'YAY', '夹心子': 'JXT', '寮步': 'LTQ', '富源': 'FYM', '常州北': 'ESH', '郁南': 'YKQ', '龙市': 'LAG', '通海': 'TAM', '古镇': 'GNQ', '弓棚子': 'GPT', '攀枝花': 'PRW', '贾鲁河': 'JLF', '仁布': 'RUO', '长庆桥': 'CQJ', '重庆西': 'CXW', '瓦拉干': 'WVX', '珠斯花': 'ZHD', '郴州西': 'ICQ', '宁安': 'NAB', '五莲': 'WLK', '常山': 'CSU', '尹地': 'YDM', '苏州北': 'OHH', '石泉县': 'SXY', '江津': 'JJW', '新化': 'EHQ', '苇河': 'WHB', '嘉善南': 'EAH', '下板城': 'EBP', '湖州': 'VZH', '纳雍': 'NYE', '新郑机场': 'EZF', '侯马西': 'HPV', '文登': 'WBK', '齐齐哈尔南': 'QNB', '滁州': 'CXH', '固镇': 'GEH', '巴山': 'BAY', '偏店': 'PRP', '霍尔果斯': 'HFR', '丰水村': 'FSJ', '铁岭西': 'PXT', '宁家': 'NVT', '昌平北': 'VBP', '榆树': 'YRT', '丽水': 'USH', '南岔': 'NCB', '曾家坪子': 'ZBW', '平顶山西': 'BFF', '梅河口': 'MHL', '伊图里河': 'YEX', '芦潮港': 'UCH', '昆明': 'KMM', '四合永': 'OHD', '昌乐': 'CLK', '峨眉': 'EMW', '长春西': 'CRT', '晋江': 'JJS', '康金井': 'KJB', '商城': 'SWN', '荣昌北': 'RQW', '阿尔山北': 'ARX', '始兴': 'IPQ', '上海': 'SHH', '渭南镇': 'WNJ', '黄流': 'KLQ', '宁波东': 'NVH', '黄柏': 'HBL', '息县': 'ENN', '石林': 'SLM', '昌': 'NOG', '吴桥': 'WUP', '合肥西': 'HTH', '尚家': 'SJB', '涿州': 'ZXP', '威箐': 'WAM', '石景山南': 'SRP', '张家界': 'DIQ', '佛山西': 'FOQ', '绥德': 'ODY', '从江': 'KNW', '芷江': 'ZPQ', '隆昌北': 'NWW', '铁厂': 'TCL', '莎车': 'SCR', '定南': 'DNG', '武清': 'WWP', '赶水': 'GSW', '鹤壁东': 'HFF', '八仙筒': 'VXD', '井冈山': 'JGG', '介休': 'JXV', '一面坡': 'YPB', '嵩明': 'SVM', '三原': 'SAY', '简阳': 'JYW', '中宁': 'VNJ', '关岭': 'GLE', '咸宁东': 'XKN', '营口东': 'YGT', '岔江': 'CAM', '杨陵': 'YSY', '十渡': 'SEP', '新都东': 'EWW', '彝良': 'ALW', '武陟': 'WIF', '万州': 'WYW', '高州': 'GSQ', '大虎山': 'DHD', '垫江': 'DJE', '晋州': 'JXP', '韶关东': 'SGQ', '前山': 'QXQ', '小河沿': 'XYD', '亚': 'JUQ', '韶关': 'SNQ', '钟祥': 'ZTN', '大连北': 'DFT', '进贤': 'JUG', '蔡山': 'CON', '常州': 'CZH', '岳池': 'AWW', '綦江': 'QJW', '安图西': 'AXL', '周家': 'ZOB', '福州南': 'FYS', '宋城路': 'SFF', '伊宁': 'YMR', '东方红': 'DFB', '普安县': 'PUE', '乐东': 'UQQ', '江桥': 'JQX', '东胜东': 'RSC', '杨林': 'YLM', '前卫': 'QWD', '赵城': 'ZCV', '太原': 'TYV', '东安东': 'DCZ', '榆树台': 'YUT', '广宁': 'FBQ', '吉舒': 'JSL', '北井子': 'BRT', '青龙': 'QIB', '张桥': 'ZQY', '巢湖东': 'GUH', '麻城北': 'MBN', '西乡': 'XQY', '三门峡': 'SMF', '青莲': 'QEW', '子洲': 'ZZY', '咸阳': 'XYY', '洛阳龙门': 'LLF', '天柱山': 'QWH', '青堆': 'QET', '永济北': 'AJV', '羊草': 'YAB', '井陉': 'JJP', '棋子湾': 'QZQ', '图强': 'TQX', '新华': 'XHB', '乌鲁木齐': 'WAR', '大安北': 'RNT', '叶城': 'YER', '织金': 'IZW', '顺义': 'SOP', '镇平': 'ZPF', '庄桥': 'ZQH', '永川东': 'WMW', '遂溪': 'SXZ', '酒泉南': 'JNJ', '龙江': 'LJX', '南华': 'NAM', '来舟': 'LZS', '德清西': 'MOH', '昂昂溪': 'AAX', '对青山': 'DQB', '海北': 'HEB', '太姥山': 'TLS', '冠豸山': 'GSS', '鄄城': 'JCK', '汤原': 'TYB', '富宁': 'FNM', '文安': 'WBP', '狮山北': 'NSQ', '陇西': 'LXJ', '潜江': 'QJN', '武山': 'WSJ', '魏善庄': 'WSP', '哈拉苏': 'HAX', '沁阳': 'QYF', '舒兰': 'SLL', '平关': 'PGM', '深圳坪山': 'IFQ', '咸宁南': 'UNN', '黑台': 'HQB', '宝清': 'BUB', '风陵渡': 'FLV', '永州': 'AOQ', '肇东': 'ZDB', '阳朔': 'YCZ', '口东': 'KEQ', '丹凤': 'DGY', '平原东': 'PUK', '吴堡': 'WUY', '望都': 'WDP', '白文东': 'BCV', '郭磊庄': 'GLP', '辽阳': 'LYT', '世博园': 'ZWT', '清水': 'QUJ', '淮安南': 'AMH', '茂舍祖': 'MOM', '大屯': 'DNT', '应城': 'YHN', '图里河': 'TEX', '攸县南': 'YXG', '沈阳东': 'SDT', '杨柳青': 'YQP', '松原北': 'OCT', '光明城': 'IMQ', '老莱': 'LAX', '阿房宫': 'EGY', '宁村': 'NCZ', '呼和浩特': 'HHC', '确山': 'QSN', '新松浦': 'XOB', '枣庄': 'ZEK', '信丰': 'EFG', '嘉峪关': 'JGJ', '龙骨甸': 'LGM', '小雨谷': 'XHM', '普兰店': 'PLT', '北宅': 'BVP', '黄州': 'VON', '伊宁东': 'YNR', '郑州西': 'XPF', '开通': 'KTT', '南曹': 'NEF', '兰考南': 'LUF', '祁门': 'QIH', '石家庄北': 'VVP', '兰棱': 'LLB', '玉山': 'YNG', '磨刀石': 'MOB', '蓝村': 'LCK', '博鳌': 'BWQ', '宝拉格': 'BQC', '连云港': 'UIH', '武威南': 'WWJ', '镇江南': 'ZEH', '灵石东': 'UDV', '青田': 'QVH', '高碑店东': 'GMP', '归流河': 'GHT', '岚县': 'UXV', '鄯善': 'SSR', '塔哈': 'THX', '柳树屯': 'LSD', '旺苍': 'WEW', '靖远': 'JYJ', '邢台': 'XTP', '能家': 'NJD', '太湖': 'TKH', '南阳': 'NFF', '宝鸡': 'BJY', '冯屯': 'FTX', '锦州': 'JZD', '免渡河': 'MDX', '巴中东': 'BDE', '渠黎': 'QLZ', '三源浦': 'SYL', '康城': 'KCP', '耒阳': 'LYQ', '三穗': 'QHW', '明光': 'MGH', '大庆': 'DZX', '安靖': 'PYW', '扎兰屯': 'ZTX', '广州南': 'IZQ', '惠环': 'KHQ', '五道沟': 'WDL', '石坝': 'OBJ', '新化南': 'EJQ', '平昌': 'PCE', '白城': 'BCT', '汉沽': 'HGP', '大连': 'DLT', '凌源': 'LYD', '宁德': 'NES', '滨江': 'BJB', '北戴河': 'BEP', '潮汕': 'CBQ', '进贤南': 'JXG', '双城北': 'SBB', '拉古': 'LGB', '金城江': 'JJZ', '叶柏寿': 'YBD', '蔡家坡': 'CJY', '台安': 'TID', '赣州': 'GZG', '辛集南': 'IJP', '观沙岭': 'FKQ', '榆中': 'IZJ', '二龙': 'RLD', '绥中': 'SZD', '绥阳': 'SYB', '旧庄窝': 'JVP', '大营子': 'DZD', '石人城': 'SRB', '张百湾': 'ZUP', '平凉': 'PIJ', '杭锦后旗': 'HDC', '焉耆': 'YSR', '照福铺': 'ZFM', '彬县': 'BXY', '阿拉山口': 'AKR', '阿尔山': 'ART', '小董': 'XEZ', '平遥古城': 'PDV', '宜城': 'YIN', '龙爪沟': 'LZT', '朱日和': 'ZRC', '宣化': 'XHP', '清河城': 'QYP', '桂平': 'GAZ', '阳泉': 'AQP', '上腰墩': 'SPJ', '白石山': 'BAL', '棕溪': 'ZOY', '孝感东': 'GDN', '河口北': 'HBM', '中山': 'ZSQ', '临高南': 'KGQ', '庙山': 'MSN', '南台': 'NTT', '上海虹桥': 'AOH', '彭泽': 'PZG', '元氏': 'YSP', '驼腰岭': 'TIL', '富源北': 'FBM', '旗下营南': 'QNC', '北票南': 'RPD', '新坪田': 'XPM', '宜昌': 'YCN', '崖州': 'YUQ', '花棚子': 'HZM', '天岗': 'TGL', '南杂木': 'NZT', '新会': 'EFQ', '凭祥': 'PXZ', '南翔北': 'NEH', '陇县': 'LXY', '长治': 'CZF', '靖边': 'JIY', '余粮堡': 'YLD', '灯塔': 'DGT', '干塘': 'GNJ', '深井子': 'SWT', '梨树镇': 'LSB', '祁东': 'QMQ', '坪石': 'PSQ', '兴隆店': 'XDD', '板城': 'BUP', '永康南': 'QUH', '宏庆': 'HEY', '南观村': 'NGP', '衡阳': 'HYQ', '朔州': 'SUV', '泡子': 'POD', '武当山': 'WRN', '霸州': 'RMP', '丰乐镇': 'FZB', '牟平': 'MBK', '洞庙河': 'DEP', '潢川': 'KCN', '德惠': 'DHT', '利川': 'LCN', '角美': 'JES', '盘锦北': 'PBD', '洮南': 'TVT', '晋中': 'JZV', '兴隆县': 'EXP', '滴道': 'DDB', '巢湖': 'CIH', '新邱': 'XQD', '什里店': 'OMP', '洪洞西': 'HTV', '兰考': 'LKF', '创业村': 'CEX', '新晃': 'XLQ', '九台南': 'JNL', '黑冲滩': 'HCJ', '云霄': 'YBS', '贵定北': 'FMW', '瓦房店': 'WDT', '梁山': 'LMK', '安溪': 'AXS', '运城北': 'ABV', '三间房': 'SFX', '宜宾': 'YBW', '曹子里': 'CFP', '玉泉': 'YQB', '莱芜西': 'UXK', '新民': 'XMD', '深圳': 'SZQ', '乾安': 'QOT', '那罗': 'ULZ', '紫荆关': 'ZYP', '泉州': 'QYS', '龙沟': 'LGJ', '华山北': 'HDY', '宁武': 'NWV', '宝林': 'BNB', '邢台东': 'EDP', '三合庄': 'SVP', '樟木头东': 'ZRQ', '建阳': 'JYS', '石梯': 'STE', '倭肯': 'WQB', '艾家村': 'AJJ', '塘豹': 'TBQ', '连江': 'LKS', '磁山': 'CSP', '通沟': 'TOL', '白马井': 'BFQ', '曾口': 'ZKE', '苍石': 'CST', '高楼房': 'GFM', '徐家': 'XJB', '大方南': 'DNE', '北滘': 'IBQ', '华山': 'HSY', '紫阳': 'ZVY', '云南驿': 'ANM', '南宁东': 'NFZ', '上虞': 'BDH', '衡山': 'HSQ', '陇南': 'INJ', '道滘': 'RRQ', '东庄': 'DZV', '三门峡南': 'SCF', '柳园南': 'LNR', '义县': 'YXD', '高台': 'GTJ', '清华园': 'QHP', '东': 'FDC', '邳州': 'PJH', '襄阳': 'XFN', '万发屯': 'WFB', '湘潭北': 'EDQ', '漳平': 'ZPS', '汐子': 'XZD', '甘泉': 'GQY', '花家庄': 'HJM', '沙坡头': 'SFJ', '九郎山': 'KJQ', '窑上': 'ASP', '广通北': 'GPM', '祁县东': 'QGV', '济南': 'JNK', '阳邑': 'ARP', '麦园': 'MYS', '东至': 'DCH', '偃师': 'YSF', '一面山': 'YST', '兰州西': 'LAJ', '扎鲁特': 'ZLD', '吉安': 'VAG', '庆阳山': 'QSJ', '抚松': 'FSL', '厦门': 'XMS', '集宁南': 'JAC', '大元': 'DYZ', '廉江': 'LJZ', '祁阳北': 'QVQ', '肥东': 'FIH', '沙湾县': 'SXR', '简阳南': 'JOW', '玉溪西': 'YXM', '中寨': 'ZZM', '戚墅堰': 'QYH', '临川': 'LCG', '小东': 'XOD', '卓资山': 'ZZC', '平原': 'PYK', '革居': 'GEM', '巨宝': 'JRT', '马莲河': 'MHB', '乌海西': 'WXC', '大杨树': 'DUX', '五棵树': 'WKT', '大磴沟': 'DKJ', '葫芦岛': 'HLD', '罗平': 'LPM', '峨边': 'EBW', '凤城东': 'FDT', '小市': 'XST', '西乌旗': 'XWC', '本溪湖': 'BHT', '达州': 'RXW', '亳州': 'BZH', '古浪': 'GLJ', '南峪': 'NUP', '鼎湖山': 'NVQ', '南部': 'NBE', '山丹': 'SDJ', '古田北': 'GBS', '福山口': 'FKP', '长临河': 'FVH', '成都': 'CDW', '茂名西': 'MMZ', '邵阳北': 'OVQ', '红果': 'HEM', '密山': 'MSB', '汤池': 'TCX', '泰来': 'TLX', '燕家庄': 'AZK', '盘龙城': 'PNN', '新立镇': 'XGT', '通远堡': 'TYT', '达家沟': 'DJT', '零陵': 'UWZ', '双峰北': 'NFQ', '太谷西': 'TIV', '曲靖': 'QJM', '二密河': 'RML', '西麻山': 'XMB', '司家岭': 'OLK', '寒葱沟': 'HKB', '鹤壁': 'HAF', '八面通': 'BMB', '襄汾西': 'XTV', '祥云西': 'EXM', '王家营西': 'KNM', '一间堡': 'YJT', '宜州': 'YSZ', '宝泉岭': 'BQB', '阿金': 'AJD', '商河': 'SOK', '金坑': 'JKT', '吐鲁番': 'TFR', '甘旗卡': 'GQD', '茅草坪': 'KPM', '云东海': 'NAQ', '桐子林': 'TEW', '焦作东': 'WEF', '刀尔登': 'DRD', '清河门': 'QHD', '新绰源': 'XRX', '滦河沿': 'UNP', '大朗镇': 'KOQ', '大板': 'DBC', '白狼': 'BAT', '弥勒': 'MLM', '许三湾': 'XSJ', '葛店南': 'GNN', '两当': 'LDY', '黄瓜园': 'HYM', '三门县': 'OQH', '海城西': 'HXT', '图们': 'TML', '兴隆镇': 'XZB', '水洋': 'OYP', '松原': 'VYT', '西八里': 'XLP', '华蓥': 'HUW', '雁荡山': 'YGH', '潼南': 'TVW', '双水镇': 'PQQ', '镇江': 'ZJH', '牛心台': 'NXT', '旬阳': 'XUY', '横沟桥东': 'HNN', '同江': 'TJB', '精河': 'JHR', '天津北': 'TBP', '落坡岭': 'LPP', '敦煌': 'DHJ', '三关口': 'OKJ', '福利屯': 'FTB', '新干': 'EGG', '甘洛': 'VOW', '十家子': 'SJD', '永安乡': 'YNB', '滦河': 'UDP', '大同': 'DTV', '略阳': 'LYY', '济南西': 'JGK', '大陆号': 'DLC', '乌兰浩特': 'WWT', '桐梓东': 'TDE', '邹城': 'ZIK', '许昌': 'XCF', '庆安': 'QAB', '临江': 'LQL', '镇西': 'ZVT', '石河子': 'SZR', '醴陵东': 'UKQ', '永丰营': 'YYM', '卧里屯': 'WLX', '长寿北': 'COW', '银滩': 'CTQ', '汝州': 'ROF', '绵阳': 'MYW', '大田边': 'DBM', '青龙山': 'QGH', '沥林北': 'KBQ', '金山屯': 'JTB', '成高子': 'CZB', '辰清': 'CQB', '广宁寺': 'GQT', '泊头': 'BZP', '伊通': 'YTL', '运粮河': 'YEF', '平南南': 'PAZ', '东胜西': 'DYC', '月山': 'YBF', '庄河北': 'ZUT', '扶绥': 'FSZ', '桃村北': 'TOK', '喀什': 'KSR', '和龙': 'HLL', '五女山': 'WET', '泽润里': 'ZLM', '建始': 'JRN', '威海': 'WKK', '江门东': 'JWQ', '德保': 'RBZ', '罗源': 'LVS', '孙家': 'SUB', '南芬': 'NFT', '大冶北': 'DBN', '孤家子': 'GKT', '佛坪': 'FUY', '商南': 'ONY', '鸡西': 'JXB', '鄯善北': 'SMR', '官高': 'GVP', '丽江': 'LHM', '建宁县北': 'JCS', '大平房': 'DPD', '水泉': 'SID', '王岗': 'WGB', '梁平南': 'LPE', '兰州东': 'LVJ', '弥渡': 'MDF', '威虎岭北': 'WBL', '晨明': 'CMB', '抚州北': 'FBG', '旅顺': 'LST', '蛟河': 'JHL', '三水北': 'ARQ', '衡水北': 'IHP', '汉口': 'HKN', '姜堰': 'UEH', '黄冈': 'KGN', '贺州': 'HXZ', '潮州': 'CKQ', '花园': 'HUN', '荆门': 'JMN', '乐清': 'UPH', '广水': 'GSN', '西岗子': 'NBB', '西昌南': 'ENW', '湖口': 'HKG', '荷塘': 'KXQ', '张家口': 'ZKP', '云梦': 'YMN', '淮安': 'AUH', '开平南': 'PVQ', '潘家店': 'PDP', '全椒': 'INH', '阿克苏': 'ASR', '泾川': 'JAJ', '綦江东': 'QDE', '中川机场': 'ZJJ', '汕尾': 'OGQ', '土地堂东': 'TTN', '前锋': 'QFB', '白沟': 'FEP', '通渭': 'TWJ', '横峰': 'HFG', '邓州': 'DOF', '新晃西': 'EWQ', '茅岭': 'MLZ', '杭州南': 'XHH', '张辛': 'ZIP', '白银市': 'BNJ', '孝感': 'XGN', '坡底下': 'PXJ', '白泉': 'BQL', '荆州': 'JBN', '高桥镇': 'GZD', '义县西': 'YSD', '白水县': 'BGY', '绥芬河': 'SFB', '六安': 'UAH', '燕山': 'AOP', '大庆西': 'RHX', '华城': 'VCQ', '罗山': 'LRN', '营口': 'YKT', '荣昌': 'RCW', '昆阳': 'KAM', '官厅西': 'KEP', '衡南': 'HNG', '高邑': 'GIP', '阳西': 'WMQ', '德州': 'DZP', '武义北': 'WDH', '玉门': 'YXJ', '常德': 'VGQ', '谢家镇': 'XMT', '台前': 'TTK', '珲春': 'HUL', '碧鸡关': 'BJM', '东京城': 'DJB', '浩良河': 'HHB', '杏树': 'XSB', '咸阳秦都': 'XOY', '昌图': 'CTT', '城固': 'CGY', '昆山南': 'KNH', '内江北': 'NKW', '吴川': 'WAQ', '安多': 'ADO', '羊堡': 'ABM', '葫芦岛北': 'HPD', '北屯市': 'BXR', '宁东': 'NOJ', '百浪': 'BRZ', '禄丰南': 'LQM', '水富': 'OTW', '门源': 'MYO', '沐滂': 'MPQ', '大营镇': 'DJP', '沂南': 'YNK', '南湾子': 'NWP', '弋江': 'RVH', '慈利': 'CUQ', '镇安': 'ZEY', '双城堡': 'SCB', '索图罕': 'SHX', '虞城县': 'IXH', '通化县': 'TXL', '苏州': 'SZH', '周水子': 'ZIT', '阿城': 'ACB', '乐昌': 'LCQ', '梧州南': 'WBZ', '金马村': 'JMM', '那铺': 'NPZ', '平泉': 'PQP', '朝阳南': 'CYD', '德清': 'DRH', '高密': 'GMK', '和田': 'VTR', '民乐': 'MBJ', '阳春': 'YQQ', '上海西': 'SXH', '井南': 'JNP', '亭亮': 'TIZ', '明水河': 'MUT', '哈尔滨西': 'VAB', '玛纳斯': 'MSR', '成都南': 'CNW', '延安': 'YWY', '五寨': 'WZV', '魏杖子': 'WKD', '蓬莱市': 'POK', '青县': 'QXP', '颍上': 'YVH', '临沂北': 'UYK', '达拉特西': 'DNC', '绩溪北': 'NRH', '合肥': 'HFH', '涪陵北': 'FEW', '杨村': 'YBP', '良各庄': 'LGP', '小月旧': 'XFM', '剑门关': 'JME', '当涂东': 'OWH', '蓟州': 'JKP', '德惠西': 'DXT', '凌海': 'JID', '太阳升': 'TQT', '郑州东': 'ZAF', '婺源': 'WYG', '牙克石': 'YKX', '石磷': 'SPB', '徐水': 'XSP', '乐山北': 'UTW', '藁城': 'GEP', '银川': 'YIJ', '鲅鱼圈': 'BYT', '查干湖': 'VAT', '六合': 'KLH', '三水': 'SJQ', '虎石台': 'HUT', '长甸': 'CDT', '韩府湾': 'HXJ', '猛洞河': 'MUQ', '七营': 'QYJ', '陆川': 'LKZ', '武威': 'WUJ', '乌伊岭': 'WPB', '庙城': 'MAP', '海阳北': 'HEK', '五府山': 'WFG', '乌兰哈达': 'WLC', '莱芜东': 'LWK', '水家湖': 'SQH', '绩溪县': 'JRH', '石家庄': 'SJP', '克一河': 'KHX', '镇赉': 'ZLT', '太谷': 'TGV', '安庆': 'AQH', '洪洞': 'HDV', '阿图什': 'ATR', '常平': 'DAQ', '酒泉': 'JQJ', '近海': 'JHD', '海口': 'VUQ', '新保安': 'XAP', '天水南': 'TIJ', '赶水东': 'GDE', '中和': 'ZHX', '丰都': 'FUW', '东方': 'UFQ', '鲁番': 'LVM', '德安': 'DAG', '鹿寨北': 'LSZ', '饶阳': 'RVP', '莱阳': 'LYK', '西柳': 'GCT', '滁州北': 'CUH', '秦家庄': 'QZV', '枫林': 'FLN', '长春': 'CCT', '双流机场': 'IPW', '黎塘': 'LTZ', '余江': 'YHG', '漯河': 'LON', '秦岭': 'QLY', '长寿湖': 'CSE', '福泉': 'VMW', '湾沟': 'WGL', '宾阳': 'UKZ', '阎良': 'YNY', '会同': 'VTQ', '三门峡西': 'SXF', '盐津': 'AEW', '固始': 'GXN', '渑池': 'MCF', '当阳': 'DYN', '临清': 'UQK', '五营': 'WWB', '艾河': 'AHP', '许昌东': 'XVF', '瑞安': 'RAH', '满洲里': 'MLX', '清河': 'QIP', '田师府': 'TFT', '普雄': 'POW', '白洋淀': 'FWP', '渠县': 'QRW', '白水江': 'BSY', '重庆': 'CQW', '江宁': 'JJH', '河津': 'HJV', '扶余北': 'FBT', '河源': 'VIQ', '发耳': 'FEM', '海拉尔': 'HRX', '衡山西': 'HEQ', '长山屯': 'CVT', '榆社': 'YSV', '息烽': 'XFW', '蚌埠': 'BBH', '水源': 'OYJ', '冷水江东': 'UDQ', '库伦': 'KLD', '鄠邑': 'KXY', '汪清': 'WQL', '大苴': 'DIM', '开原西': 'KXT', '莫尔道嘎': 'MRX', '建瓯西': 'JUS', '三都县': 'KKW', '义马': 'YMF', '海晏': 'HFO', '凌源东': 'LDD', '郭家店': 'GDT', '塔崖驿': 'TYP', '溆浦': 'EPQ', '利津南': 'LNK', '绥棱': 'SIB', '贲红': 'BVC', '阳谷': 'YIK', '昭山': 'KWQ', '白壁关': 'BGV', '通道': 'TRQ', '黑河': 'HJB', '麻阳': 'MVQ', '巴彦高勒': 'BAC', '仙林': 'XPH', '仪征': 'UZH', '桦林': 'HIB', '东淤地': 'DBV', '宣威': 'XWM', '宁乡': 'NXQ', '本溪新城': 'BVT', '长征': 'CZJ', '苏州新区': 'ITH', '磁县': 'CIP', '苏家屯': 'SXT', '惠州西': 'VXQ', '尼勒克': 'NIR', '建瓯': 'JVS', '郑州': 'ZZF', '太阳山': 'TYJ', '长沙南': 'CWQ', '虢镇': 'GZY', '白山市': 'HJL', '柴沟堡': 'CGV', '娘子关': 'NIP', '河边': 'HBV', '关林': 'GLF', '天津南': 'TIP', '伊拉哈': 'YLX', '德昌': 'DVW', '界首市': 'JUN', '龙山镇': 'LAS', '德兴': 'DWG', '漫水湾': 'MKW', '焦作': 'JOF', '尖山': 'JPQ', '大余': 'DYG', '开江': 'KAW', '楚山': 'CSB', '霸州西': 'FOP', '柴岗': 'CGT', '蔡家沟': 'CJT', '长兴南': 'CFH', '临沂': 'LVK', '信阳': 'XUN', '嘉峪关南': 'JBJ', '平顶山': 'PEN', '瓢儿屯': 'PRT', '于都': 'YDG', '赤峰西': 'CID', '沃皮': 'WPT', '衡阳东': 'HVQ', '安阳': 'AYF', '松桃': 'MZQ', '乌龙泉南': 'WFN', '龙塘坝': 'LBM', '太原北': 'TBV', '西林': 'XYB', '平社': 'PSV', '秧草地': 'YKM', '嵯岗': 'CAX', '蒙自': 'MZM', '顺昌': 'SCS', '迎宾路': 'YFW', '罗城': 'VCZ', '广州北': 'GBQ', '旬阳北': 'XBY', '大旺': 'WWQ', '澄城': 'CUY', '苇子沟': 'WZL', '北京东': 'BOP', '嘉兴南': 'EPH', '东营南': 'DOK', '开福寺': 'FLQ', '大石头南': 'DAL', '克山': 'KSB', '豆张庄': 'RZP', '香樟路': 'FNQ', '锡林浩特': 'XTC', '周家屯': 'ZOD', '枣庄西': 'ZFK', '寒岭': 'HAT', '库车': 'KCR', '晋城': 'JCF', '美溪': 'MEB', '建三江': 'JIB', '黄冈西': 'KXN', '萧县北': 'QSH', '富裕': 'FYX', '洛阳东': 'LDF', '清远': 'QBQ', '来宾北': 'UCZ', '湟源': 'HNO', '彭水': 'PHW', '泥河子': 'NHD', '团结': 'TIX', '林源': 'LYX', '邵东': 'FIQ', '渠旧': 'QJZ', '老营': 'LXL', '鄂州东': 'EFN', '新窝铺': 'EPD', '平峪': 'PYP', '顺德': 'ORQ', '泰山': 'TAK', '大孤山': 'RMT', '法启': 'FQE', '天义': 'TND', '二连': 'RLC', '通州西': 'TAP', '怀化南': 'KAQ', '夏石': 'XIZ', '小新街': 'XXM', '寿阳': 'SYV', '勃利': 'BLB', '尚志': 'SZB', '织金北': 'ZJE', '大湾子': 'DFM', '固安': 'GFP', '弋阳': 'YIG', '红安西': 'VXN', '崔黄口': 'CHP', '沈阳': 'SYT', '四平东': 'PPT', '施家嘴': 'SHM', '宁陵县': 'NLF', '哈拉海': 'HIT', '大兴沟': 'DXL', '香坊': 'XFB', '奈曼': 'NMD', '闽清': 'MQS', '蚌埠南': 'BMH', '靖西': 'JMZ', '小扬气': 'XYX', '拉哈': 'LHX', '双丰': 'OFB', '葡萄菁': 'PTW', '姚安': 'YAC', '漳州': 'ZUS', '道州': 'DFZ', '怀柔北': 'HBP', '江华': 'JHZ', '南关岭': 'NLT', '甘河': 'GAX', '临西': 'UEP', '陈相屯': 'CXT', '鹤岗': 'HGB', '中华门': 'VNH', '韩城': 'HCY', '郴州': 'CZQ', '昌平': 'CPP', '卫东': 'WVT', '缙云西': 'PYH', '建设': 'JET', '八面城': 'BMD', '曲水县': 'QSO', '襄汾': 'XFV', '祁阳': 'QWQ', '邵家堂': 'SJJ', '台山': 'PUQ', '麻尾': 'VAW', '大王滩': 'DZZ', '山市': 'SQB', '宿松': 'OAH', '三家寨': 'SMM', '富县东': 'FDY', '孝感北': 'XJN', '正定机场': 'ZHP', '广元': 'GYW', '白银西': 'BXJ', '新乡东': 'EGF', '阆中': 'LZE', '渑池南': 'MNF', '乌鲁木齐南': 'WMR', '宿州东': 'SRH', '朝阳川': 'CYL', '通化': 'THL', '池州': 'IYH', '汕头': 'OTQ', '北屯': 'BYP', '大拟': 'DNZ', '枣强': 'ZVP', '南陵': 'LLH', '集安': 'JAL', '三十家': 'SRD', '丰镇': 'FZC', '佳木斯': 'JMB', '自贡': 'ZGW', '娄底南': 'UOQ', '上万': 'SWP', '姚渡': 'AOJ', '平山': 'PSB', '白旗': 'BQP', '平庄': 'PZD', '长春南': 'CET', '虎什哈': 'HHP', '沈家': 'OJB', '邵阳': 'SYQ', '通远堡西': 'TST', '落垡': 'LOP', '太原东': 'TDV', '银瓶': 'KPQ', '杜尔伯特': 'TKX', '田东北': 'TBZ', '永城北': 'RGH', '大青沟': 'DSD', '太平川': 'TIT', '莲江口': 'LHB', '朝天': 'CTE', '华家': 'HJT', '绥化': 'SHB', '樟树东': 'ZOG', '田心东': 'KQQ', '余姚北': 'CTH', '安庆西': 'APH', '泽普': 'ZPR', '金华': 'JBH', '罗江东': 'IKW', '介休东': 'JDV', '苍溪': 'CXE', '丰顺': 'FUQ', '干沟': 'GGL', '铜陵北': 'KXH', '长垣': 'CYF', '峻德': 'JDB', '打柴沟': 'DGJ', '复盛': 'FAW', '英德西': 'IIQ', '安亭北': 'ASH', '长冲': 'CCM', '山阴': 'SNV', '山河屯': 'SHL', '夏邑县': 'EJH', '刘家店': 'UDT', '乌海': 'WVC', '和静': 'HJR', '天津': 'TJP', '园墩': 'YAJ', '大连西': 'GZT', '歪头山': 'WIT', '杨陵南': 'YEY', '长武': 'CWY', '龙里': 'LLW', '灵武': 'LNJ', '武夷山北': 'WBS', '广元南': 'GAW', '九台': 'JTL', '秦家': 'QJB', '三元区': 'SMS', '前苇塘': 'QWP', '钦州东': 'QDZ', '抚远': 'FYB', '南平北': 'NBS', '青铜峡': 'QTJ', '马鞍山': 'MAH', '鹰潭北': 'YKG', '衢州': 'QEH', '瓦窑田': 'WIM', '厦门高崎': 'XBS', '楚雄南': 'COM', '谷山': 'FFQ', '统军庄': 'TZP', '伊林': 'YLB', '东港北': 'RGT', '商丘南': 'SPF', '洞井': 'FWQ', '大安': 'RAT', '西固': 'XIJ', '淮南': 'HAH', '茶陵南': 'CNG', '五家': 'WUB', '巴中': 'IEW', '芨岭': 'JLJ', '黄泥河': 'HHL', '红山': 'VSB', '玉石': 'YSJ', '巩义': 'GXF', '燕郊': 'AJP', '前磨头': 'QMP', '百里峡': 'AAP', '天河街': 'TEN', '下马塘': 'XAT', '泗洪': 'GQH', '温州南': 'VRH', '张维屯': 'ZWB', '涪陵': 'FLW', '建昌': 'JFD', '新阳镇': 'XZJ', '扎赉诺尔西': 'ZXX', '穆棱': 'MLB', '小西庄': 'XXP', '南充': 'NCW', '金月湾': 'PYQ', '谷城': 'GCN', '化州': 'HZZ', '板塘': 'NGQ', '克东': 'KOB', '闻喜西': 'WOV', '神木': 'HMY', '龙洞堡': 'FVW', '八达岭': 'ILP', '汤逊湖': 'THN', '石岭': 'SOL', '杭州东': 'HGH', '繁峙': 'FSV', '西平西': 'EGQ', '奎屯': 'KTR', '盖州': 'GXT', '北京': 'BJP', '唐河': 'THF', '广州西': 'GXQ', '沙岭子西': 'IXP', '三井子': 'OJT', '土贵乌拉': 'TGC', '龙镇': 'LZA', '龙游': 'LMH', '抚州': 'FZG', '青岛': 'QDK', '东镇': 'DNV', '青神': 'QVW', '高村': 'GCV', '六枝': 'LIW', '大官屯': 'DTT', '光山': 'GUN', '宣和': 'XWJ', '定远': 'EWH', '银浪': 'YJX', '安口窑': 'AYY', '新城子': 'XCT', '铜陵': 'TJH', '鹰手营子': 'YIP', '低窝铺': 'DWJ', '福利区': 'FLJ', '博克图': 'BKX', '龙岩': 'LYS', '带岭': 'DLB', '长农': 'CNJ', '流水沟': 'USP', '皇姑屯': 'HTT', '将乐': 'JLS', '化德': 'HGC', '盘关': 'PAM', '柴河': 'CHB', '盐城': 'AFH', '平旺': 'PWV', '恩施': 'ESN', '神树': 'SWB', '平河口': 'PHM', '南城司': 'NSP', '汝箕沟': 'RQJ', '扶余': 'FYT', '张掖': 'ZYJ', '厦门北': 'XKS', '城固北': 'CBY', '马皇': 'MHZ', '阳江': 'WRQ', '金河': 'JHX', '漳县': 'ZXJ', '宣汉': 'XHY', '祁家堡': 'QBT', '宁东南': 'NDJ', '抚顺': 'FST', '临城': 'UUP', '金寨': 'JZH', '新江': 'XJM', '换新天': 'VTB', '昭化': 'ZHW', '资溪': 'ZXS', '那曲': 'NQO', '皮山': 'PSR', '南宁': 'NNZ', '平田': 'PTM', '定边': 'DYJ', '贵阳北': 'KQW', '石门县北': 'VFQ', '沭阳': 'FMH', '福海': 'FHR', '桐城': 'TTH', '宁波': 'NGH', '草市': 'CSL', '兴安': 'XAZ', '孟庄': 'MZF', '章丘': 'ZTK', '阳信': 'YVK', '工农湖': 'GRT', '洛门': 'LMJ', '平庄南': 'PND', '亮甲店': 'LRT', '先锋': 'NQQ', '牡丹江': 'MDB', '大埔': 'DPI', '八角台': 'BTD', '高滩': 'GAY', '贵定南': 'IDW', '遵义西': 'ZIW', '江所田': 'JOM', '磐石': 'PSL', '恭城': 'GCZ', '烟台西': 'YTK', '沈阳南': 'SOT', '洪河': 'HPB', '敖力布告': 'ALD', '沙桥': 'SQM', '郯城': 'TZK', '高平': 'GPF', '无为': 'IIH', '临邑': 'LUK', '讷河': 'NHX', '青山': 'QSB', '永定': 'YGS', '草海': 'WBW', '虎林': 'VLB', '路口铺': 'LKQ', '白水镇': 'BUM', '镇城底': 'ZDV', '玉田县': 'ATP', '广南卫': 'GNM', '都匀东': 'KJW', '四会': 'AHQ', '五大连池': 'WRB', '泗县': 'GPH', '锦州南': 'JOD', '清水县': 'QIJ', '丹东': 'DUT', '安化': 'PKQ', '沙沱': 'SFM', '瑞金': 'RJG', '西丰': 'XFT', '迁安': 'QQP', '竹园坝': 'ZAW', '梁平': 'UQW', '首山': 'SAT', '公营子': 'GYD', '林东': 'LRC', '海城': 'HCT', '黄梅': 'VEH', '磁窑': 'CYK', '文昌': 'WEQ', '奇峰塔': 'QVP', '滦县': 'UXP', '上饶': 'SRG', '奎山': 'KAB', '师宗': 'SEM', '褚家湾': 'CWJ', '淮北北': 'PLH', '绍兴': 'SOH', '吴圩': 'WYZ', '璧山': 'FZW', '民权': 'MQF', '阿木尔': 'JTX', '崇左': 'CZZ', '包头': 'BTC', '平岗': 'PGL', '塔河': 'TXX', '江边村': 'JBG', '陶家屯': 'TOT', '缙云': 'JYH', '茂林': 'MLD', '公主岭': 'GLT', '兴国': 'EUG', '十堰': 'SNN', '新县': 'XSN', '老府': 'UFD', '无锡东': 'WGH', '蓬安': 'PAW', '丹霞山': 'IRQ', '宜良北': 'YSM', '曲阜': 'QFK', '口前': 'KQL', '新沂': 'VIH', '建安': 'JUL', '邵武': 'SWS', '潼关': 'TGY', '乌尔旗汗': 'WHX', '修武西': 'EXF', '蜀河': 'SHY', '雨格': 'VTM', '都江堰': 'DDW', '木里图': 'MUD', '虎门': 'IUQ', '郓城': 'YPK', '芙蓉南': 'KCQ', '大石寨': 'RZT', '鄂尔多斯': 'EEC', '凤县': 'FXY', '孝西': 'XOV', '白鸡坡': 'BBM', '大巴': 'DBD', '汨罗东': 'MQQ', '甘谷': 'GGJ', '东台': 'DBH', '小河镇': 'EKY', '三堂集': 'SDH', '南朗': 'NNQ', '凯里': 'KLW', '偏岭': 'PNT', '万州北': 'WZE', '天水': 'TSJ', '独立屯': 'DTX', '怀仁东': 'HFV', '榕江': 'RVW', '双河镇': 'SEL', '盘锦': 'PVD', '土溪': 'TSW', '尖峰': 'PFQ', '长汀': 'CES', '岐山': 'QAY', '塔尔气': 'TVX', '大庆东': 'LFX', '拉萨': 'LSO', '三阳川': 'SYJ', '长城': 'CEJ', '赤壁北': 'CIN', '济源': 'JYF', '狮山': 'KSQ', '花园口': 'HYT', '坪上': 'PSK', '唐山北': 'FUP', '上西铺': 'SXM', '汤山城': 'TCT', '安家': 'AJB', '南江口': 'NDQ', '安顺': 'ASW', '安达': 'ADX', '尼木': 'NMO', '达拉特旗': 'DIC', '兑镇': 'DWV', '广州': 'GZQ', '濑湍': 'LVZ', '旌德': 'NSH', '桂林西': 'GEZ', '麻城': 'MCN', '招柏': 'ZBP', '南桥': 'NQD', '安图': 'ATL', '金昌': 'JCJ', '娄烦': 'USV', '于家堡': 'YKP', '北台': 'BTT', '皮口': 'PUT', '敖汉': 'YED', '涟源': 'LAQ', '根河': 'GEX', '松滋': 'SIN', '友好': 'YOB', '山城镇': 'SCL', '松江镇': 'OZL', '宋': 'SOB', '榆树沟': 'YGP', '帽儿山': 'MRB', '建湖': 'AJH', '广安南': 'VUW', '车转湾': 'CWM', '新余': 'XUG', '鄱阳': 'PYG', '绿博园': 'LCF', '柳江': 'UQZ', '乐善村': 'LUM', '哲里木': 'ZLC', '红星': 'VXB', '华容南': 'KRN', '泰安': 'TMK', '吐列毛杜': 'TMD', '晏城': 'YEK', '毛坝': 'MBY', '鞍山西': 'AXT', '遵义': 'ZYE', '桑园子': 'SAJ', '桃山': 'TAB', '金银潭': 'JTN', '东辛庄': 'DXD', '西昌': 'ECW', '丹徒': 'RUH', '图们北': 'QSL', '锦河': 'JHB', '宜春': 'YEG', '咸宁北': 'XRN', '信宜': 'EEQ', '富拉尔基': 'FRX', '东莞': 'RTQ', '汉川': 'HCN', '尤溪': 'YXS', '陆丰': 'LLQ', '容县': 'RXZ', '深圳北': 'IOQ', '花山南': 'KNN', '茂名': 'MDQ', '大足南': 'FQW', '句容西': 'JWH', '汉寿': 'VSQ', '东丰': 'DIL', '天门南': 'TNN', '桐梓': 'TZW', '砀山': 'DKH', '辽中': 'LZD', '鹤立': 'HOB', '晋城北': 'JEF', '庐山': 'LSG', '都格': 'DMM', '丹阳北': 'EXH', '大禾塘': 'SOQ', '南口前': 'NKT', '安德': 'ARW', '沈丘': 'SQN', '渭南': 'WNY', '曲阜东': 'QAK', '古交': 'GJV', '章古台': 'ZGD', '钟山': 'ZSZ', '通州': 'TOP', '昆明西': 'KXM', '鸳鸯镇': 'YYJ', '昭通': 'ZDW', '福田': 'NZQ', '任丘': 'RQP', '保康': 'BKD', '海东西': 'HDO', '襄阳东': 'XWN', '泰宁': 'TNS', '定西北': 'DNJ', '仙游': 'XWS', '诏安': 'ZDS', '莆田': 'PTS', '中山北': 'ZGQ', '沟帮子': 'GBD', '阿里河': 'AHX', '辰溪': 'CXQ', '许家屯': 'XJT', '普定': 'PGW', '琼海': 'QYQ', '岑溪': 'CNZ', '北马圈子': 'BRP', '华容': 'HRN', '东岔': 'DCJ', '新和': 'XIR', '疏勒河': 'SHJ', '沙河口': 'SKT', '马林': 'MID', '乌奴耳': 'WRX', '索伦': 'SNT', '笔架山': 'BSB', '抚州东': 'FDG', '王杨': 'WYB', '六盘水': 'UMW', '费县': 'FXK', '涞源': 'LYP', '太平镇': 'TEB', '汤阴': 'TYF', '醴陵': 'LLG', '松江': 'SAH', '富川': 'FDZ', '古莲': 'GRX', '仙人桥': 'XRL', '石家庄东': 'SXP', '镜铁山': 'JVJ', '王家湾': 'WJJ', '上板城': 'SBP', '炎陵': 'YAG', '额济纳': 'EJC', '江油北': 'JBE', '姚家': 'YAT', '黄山北': 'NYH', '怀仁': 'HRV', '临泽': 'LEJ', '韩麻营': 'HYP', '柞水': 'ZSY', '凤凰机场': 'FJQ', '施秉': 'AQW', '道清': 'DML', '武夷山东': 'WCS', '芜湖': 'WHH', '阳曲': 'YQV', '巴林': 'BLX', '桐乡': 'TCH', '梁底下': 'LDP', '卫辉': 'WHF', '营山': 'NUW', '二龙山屯': 'ELA', '平安驿': 'PNO', '菏泽': 'HIK', '鸭园': 'YYL', '凯里南': 'QKW', '定西': 'DSJ', '淮南东': 'HOH', '新帐房': 'XZX', '悬钟': 'XRP', '碧江': 'BLQ', '苏州园区': 'KAH', '修文县': 'XWE', '绿化': 'LWJ', '阳泉北': 'YPP', '富锦': 'FIB', '长汀南': 'CNS', '南大庙': 'NMP'}


# 参数说明
# from_station:出发地 to_station:目的地  querydate:查询日期
def Query(from_station, to_station, querydate):
    # 完整url示例
    # url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2018-08-29&leftTicketDTO.from_station=SZQ&leftTicketDTO.to_station=SGQ&purpose_codes=ADULT"
    # 下述url是在network的XHR里获得
    url = ("https://kyfw.12306.cn/otn/leftTicket/queryA?leftTicketDTO.train_date={0}&leftTicketDTO.from_station={1}&leftTicketDTO.to_station={2}&purpose_codes=ADULT").format(querydate, from_station, to_station)
    #主要是获取user-agent,伪装成浏览器,其它的可要,可不要
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    }
    web_data = requests.get(url, headers=header)  #verify=False表示不判断证书
    web_data.encoding = "utf-8"
    traindatas = web_data.json()["data"]["result"]  # 返回的结果,转化成json格式,取出data中的result方便后面解析列车信息用
    print(web_data.text)
    #print(traindatas)
    pt = PrettyTable()  #以表格形式显示
    pt._set_field_names("车次 始发站/终点站 出发地/目的地 发车时间 到达时间 历时 商务座 特等座 一等座 二等座 动卧 软卧 硬卧 硬座 无座 备注".split())  #列名称
    url_param_list = []   # 其中保存请求车票价格所需拼接url的参数信息,如[["train_no":690000K2380B,"from_station":"01",...]]
    for onedata in traindatas:
        onedata = onedata.split("|")  #获取一条数据所有信息,以列表形式保存
        remarks = onedata[1]  # 备注
        checi = onedata[3]  # 车次
        start_station = onedata[4]  # 始发站
        end_station = onedata[5]    # 终点站
        start_station_key = get_stations_key(start_station)  # 始发站变为中文 如SZQ表示深圳站
        end_station_key = get_stations_key(end_station)  # 终点站变为中文
        from_station = onedata[6]  #出发地简称
        to_station = onedata[7]    #目的地简称
        from_station_key = get_stations_key(from_station)  # 出发地变为中文
        to_station_key = get_stations_key(to_station)  # 目的地变为中文
        departuretime = onedata[8] #出发时间
        arrivaltime = onedata[9]   #结束时间
        costtime = onedata[10]    #花费时间
        #date = onedata[13]        #查询日期
        #普快
        ruanwo = onedata[-14] if onedata[-14].strip() != "" else "-"   # 软卧
        wuzuo = onedata[-11] if onedata[-11].strip() != "" else "-"  # 普快无座
        yingwo = onedata[-9] if onedata[-9].strip() != "" else "-"   # 硬卧
        yingzuo = onedata[-8] if onedata[-9].strip() != "" else "-"  # 硬座
        #高铁/动车
        wuzuo = onedata[-11] if onedata[-11].strip() != "" else "-"   #高铁无座
        erdeng = onedata[-7] if onedata[-7].strip() != "" else "-"   # 二等座
        yideng = onedata[-6] if onedata[-6].strip() != "" else "-"   # 一等座
        shangwu = onedata[-5] if onedata[-5].strip() != "" else "-"  # 商务座
        tedeng = onedata[-12] if onedata[-12].strip() != "" else "-"  # 特等座
        dongwo = onedata[-4] if onedata[-4].strip() != "" else "-"   # 动车动卧
        print(onedata)
        #print(checi, departuretime, arrivaltime, costtime, date)
        pt.add_row([checi,    #车次
                    ("/").join([Fore.GREEN + start_station_key + Fore.RESET, Fore.RED + end_station_key + Fore.RESET]), #始发站/终点站,并对字体着色
                    ("/").join([from_station_key, to_station_key]),  # 出发地/目的地
                    departuretime,  # 出发时间
                    arrivaltime,  # 到达时间
                    Fore.GREEN+costtime+Fore.RESET,     # 历时
                    shangwu,      # 商务座
                    tedeng,        # 特等座
                    yideng,       # 一等座
                    erdeng,       # 二等座
                    dongwo,       # 动卧
                    ruanwo,       # 软卧
                    yingwo,       # 硬卧
                    yingzuo,      # 硬座
                    wuzuo,        # 无座
                    remarks       # 备注
                    ])
        # 保存每条火车线路中与请求价格url相关的参数
        if(onedata[-2].strip() == ''):  #座位类型为空时发现是列车运行图调整,暂停发售,此时跳过
            continue
        url_param_dict = {
            'train_no': onedata[2],   # 火车编号
            'from_station_no': onedata[16],  # 出发地编号
            'to_station_no': onedata[17],   # 目的地编号
            'seat_types': onedata[-2],  # 座位类型
            'train_date': onedata[13],  # 出发日期
            'from_station_key': from_station_key,  # 记录出发地中文,方便后面展示
            'to_station_key': to_station_key,   # 记录目的地中文,方便后面展示
            'checi': checi  # 记录车次,方便后面展示
        }
        url_param_list.append(url_param_dict)
    print("查询日期:", querydate)
    # 获得查询车次信息
    print(pt)
    # 获得车票价格
    get_prices(url_param_list)


#获取站名的中文和大写英文简称对应的值,以字典形式保存
def get_stations():
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    }
    # 该url是在NetWork的station_name.js?station_version=1.9063中获得
    url = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9063"
    web_data = requests.get(url)
    web_data.encoding = "utf-8"
    # 使用正则表达式提取所有的站点:汉字和对应的大写字母简称
    stations = dict(re.findall(u'([\u4e00-\u9fa5]+)\|([A-Z]+)', web_data.text))
    print(stations)
    #pprint(stations.keys())
    #pprint(stations.values())
    return stations


#根据值value获取字典stations的key值,如get_stations_key('SZQ') = '深圳'
def get_stations_key(value):
    key = list(stations.keys())[list(stations.values()).index(value)]  #参考链接https://blog.csdn.net/ywx1832990/article/details/79145576
    return key


#获取火车票价格
# param_list为相关查询信息参数列表,一个列表中有多条字典,每个字典包含相关信息,通过这些信息确定车次号,出发站终点站等,拼接url去获取价格
def get_prices(param_list):
    if len(param_list) == 0:
        return
    #print(param_list)
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    }
    pt = PrettyTable()  #以表格形式显示
    pt._set_field_names("车次 出发地/目的地 商务座 特等座 一等座 二等座 动卧 软卧 硬卧 硬座 无座".split())  #列名称
    #url = "https://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?train_no=690000K2380B&from_station_no=01&to_station_no=08&seat_types=1431&train_date=2018-08-28"
    # 根据每条数据依次构造url获取车票价格信息
    for one in param_list:
        #print(one)
        train_no = one['train_no']  # 火车编号(非车次)
        from_station_no = one['from_station_no']   # 出发地编号
        to_station_no = one['to_station_no']  # 目的地编号
        seat_type = one['seat_types']  # 座次类型,普快:1413, 高铁:090M,OM9  Z开头:113,动车:0F
        train_date = one['train_date']  # 出发日期
        train_date = ('{0}-{1}-{2}').format(train_date[:4], train_date[4:6], train_date[6:8]) #如日期20180830变为2018-08-30
        from_station_key = one['from_station_key']  # 出发地中文
        to_station_key = one['to_station_key']  # 目的地中文
        checi = one['checi']  # 车次
        # 完整url示例
        # url = "https://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?train_no=65000K90180I&from_station_no=01&to_station_no=07&seat_types=1413&train_date=2018-09-28"
        url = ("https://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?train_no={0}&from_station_no={1}&to_station_no={2}&seat_types={3}&train_date={4}").format(train_no,from_station_no,to_station_no,seat_type,train_date)
        #print(url)
        sleep(0.1)
        web_data = requests.get(url, headers=header)
        web_data.encoding = 'utf-8'
        #print(web_data.text)
        pricedata = web_data.json()["data"]  #里面以字典形式保存价格等信息
        #print(pricedata)  # 如{'9': '11945', 'M': '¥603.5', 'train_no': '6i0000G6380A', 'A9': '¥1194.5', 'OT': [], 'WZ': '¥388.5', 'O': '¥388.5'}
        # 当座次不存在时(例如普快中无二等座),则价格置为空字符串, 下面这些key值是通过上述url中获取得到的json数据分析所知
        # 高铁( WZ:无座, O:二等座, M:一等座, A9:商务座 P:特等座)
        wuzuo = '-' if 'WZ' not in pricedata.keys() else pricedata['WZ']  # 高铁,动车,普快无座key值一样
        erdeng = '-' if 'O' not in pricedata.keys() else pricedata['O']  #高铁,动车二等座key值一样
        yideng = '-' if 'M' not in pricedata.keys() else pricedata['M']
        shangwu = '-' if 'A9' not in pricedata.keys() else pricedata['A9']
        tedeng = '-' if 'P'not in pricedata.keys() else pricedata['P']
        # 动车( WZ:无座, O:二等, F:动卧 )
        dongwo = '-' if 'F' not in pricedata.keys() else pricedata['F']
        # 普快( WZ:无座, A1:硬座, A3:硬卧, A4:软卧 )
        yingzuo = '-' if 'A1' not in pricedata.keys() else pricedata['A1']
        yingwo = '-' if 'A3' not in pricedata.keys() else pricedata['A3']
        ruanwo = '-' if 'A4' not in pricedata.keys() else pricedata['A4']
        pt.add_row([checi, ('/').join([from_station_key, to_station_key]), shangwu, tedeng, yideng, erdeng, dongwo, ruanwo, yingwo, yingzuo, wuzuo])
    # 显示票价结果
    print("车次价格表")
    print(pt)


#主函数
if __name__ == "__main__":
    try:
        #stations = get_stations()
        from_chinese = input("输入出发地:\n")
        to_chinese = input("输入目的地:\n")
        date = input("输入出发日(如2018-07-25):\n")
        from_station = stations[from_chinese]
        to_station = stations[to_chinese]
        print(from_station, "->", to_station)
        #Query("SZQ", "CSQ", "2018-08-30")
        Query(from_station, to_station,date)
    except Exception as ex:
        print("错误为%s" % ex)

运行程序,输入查询参数,如下图所示:

查询结果:

1.车次余票信息

2.票价信息

猜你喜欢

转载自blog.csdn.net/feiyang5260/article/details/82255977
今日推荐