目录

  • 源数据
  • 处理思路
  • 完整代码

源数据

想分析一下,中国的省份城市数据,在网上找了一份银行支行数据中国支行数据,想把省份城市数据整理成json格式,类似下面这种:


至于银行信息,因为可能系统只支持部分银行,所以有一个支持的银行列表,根据支持的银行列表,获取所有的支行数据。

数据源的数据格式如下:
[{“sub_branch_name”:“招商银行股份有限公司北京华贸城支行”,“sub_branch_id”:“10011111011”,“province”:“北京市”,“province_id”:11,“city”:“北京市”,“city_id”:1101,“bank_name”:“招商银行”,“bank_id”:1001},…]

处理思路

整个是一个jsonArray,里面分别是一个jsonObject,我们需要遍历一遍jsonArray,然后去构建我们的省市map(map的key分别是省份,value对应的这个省的城市列表,列表中没有对应城市时才去添加),及支持银行的map(map的key分别是银行,value对应的银行的支行列表。列表中没有对应的支行信息才去添加)。

完整代码

针对杭州银行,支行数据不全,需要额外处理一下。

public class ParseBanks {private static int BUFFER_SIZE = Integer.MAX_VALUE;public static void main(String[] args) throws IOException {String dataPath = "/home/yuyuanhe/bank.json";String[] banks = {"中国工商银行", "招商银行", "中国农业银行", "中国建设银行", "广发银行", "浦发银行", "交通银行", "中国民生银行", "中国光大银行", "中国银行", "中信银行"};String hangzhouBank = "杭州银行总行营业部\n" +"杭州银行清泰支行\n" +"杭州银行市民中心支行\n" +"杭州银行延中大楼支行\n" +"杭州银行官巷口支行\n" +"杭州银行之江支行\n" +"杭州银行城站支行\n" +"杭州银行南山支行\n" +"杭州银行涌金支行\n" +"杭州银行复兴支行\n" +"杭州银行环北支行\n" +"杭州银行春晖支行\n" +"杭州银行香积寺路支行\n" +"杭州银行石桥支行\n" +"杭州银行朝晖支行\n" +"杭州银行建国路支行\n" +"杭州银行天水支行\n" +"杭州银行东新支行\n" +"杭州银行艮山支行\n" +"杭州银行湖墅支行\n" +"杭州银行大关支行\n" +"杭州银行德胜支行\n" +"杭州银行莫干山路支行\n" +"杭州银行电厂支行\n" +"杭州银行丰潭支行\n" +"杭州银行城北支行\n" +"杭州银行拱宸桥支行\n" +"杭州银行汽车城支行\n" +"杭州银行米市巷社区支行\n" +"杭州银行三墩文鼎苑社区支行\n" +"杭州银行之江度假区支行\n" +"杭州银行文新金乐社区支行\n" +"杭州银行西湖支行\n" +"杭州银行西苑支行\n" +"杭州银行求是支行\n" +"杭州银行学院路支行\n" +"杭州银行城西支行\n" +"杭州银行江城支行\n" +"杭州银行望江支行\n" +"杭州银行闸口支行\n" +"杭州银行四季青支行\n" +"杭州银行新塘路支行\n" +"杭州银行望江大通桥社区支行\n" +"杭州银行保俶支行\n" +"杭州银行北山支行\n" +"杭州银行华成支行\n" +"杭州银行平海支行\n" +"杭州银行浣纱支行\n" +"杭州银行秋涛支行\n" +"杭州银行丁桥支行\n" +"杭州银行九堡支行\n" +"杭州银行城东支行\n" +"杭州银行笕桥支行\n" +"杭州银行彭埠支行\n" +"杭州银行钱塘智慧城支行\n" +"杭州银行九堡魅力城社区支行\n" +"杭州银行丁桥大唐苑社区支行\n" +"杭州银行西城支行\n" +"杭州银行高新支行\n" +"杭州银行三墩支行\n" +"杭州银行留下支行\n" +"杭州银行蒋村支行\n" +"杭州银行留下和家园社区支行\n" +"杭州银行滨江支行\n" +"杭州银行钱江支行\n" +"杭州银行西兴支行\n" +"杭州银行白马湖支行\n" +"杭州银行浦沿支行\n" +"滨江文化中心小微企业专营支行\n" +"西兴西陵社区支行\n" +"杭州银行科技支行\n" +"杭州银行西溪支行\n" +"杭州银行海创园支行\n" +"杭州银行文创支行\n" +"杭州银行下沙支行\n" +"杭州银行金沙小微企业专营支行\n" +"杭州银行下沙街道上沙社区支行\n" +"杭州银行萧山支行\n" +"杭州银行萧山城厢支行\n" +"杭州银行瓜沥支行\n" +"杭州银行临浦支行\n" +"杭州银行大江东支行\n" +"杭州银行余杭宝塔支行\n" +"杭州银行余杭支行\n" +"杭州银行余杭良渚支行\n" +"杭州银行余杭塘栖小微企业专营支行\n" +"杭州银行富阳支行\n" +"杭州银行富阳新登支行\n" +"杭州银行富阳江南商城小微企业专营支行\n" +"杭州银行临安支行\n" +"杭州银行临安龙岗支行\n" +"杭州银行临安钱王小微企业专营支行\n" +"杭州银行桐庐支行\n" +"杭州银行桐庐分水支行\n" +"杭州银行淳安支行\n" +"杭州银行建德支行\n" +"杭州银行建德新安江小微专营支行/td>\n" +"杭州银行北京分行营业部\n" +"杭州银行北京安贞支行\n" +"杭州银行北京顺义支行\n" +"杭州银行北京朝阳支行\n" +"杭州银行北京中关村支行\n" +"杭州银行北京通州支行\n" +"杭州银行北京丰台支行\n" +"杭州银行北京大兴支行\n" +"杭州银行北京平谷支行\n" +"杭州银行北京房山支行\n" +"杭州银行北京昌平支行\n" +"杭州银行北京上地支行\n" +"杭州银行北京石景山文创支行\n" +"杭州银行北京次渠支行\n" +"杭州银行北京东城支行\n" +"杭州银行北京顺义裕龙支行\n" +"杭州银行上海分行营业部\n" +"杭州银行上海杨浦支行\n" +"杭州银行上海浦东支行\n" +"杭州银行上海闵行支行\n" +"杭州银行上海徐汇支行\n" +"杭州银行上海虹口支行\n" +"杭州银行上海嘉定支行\n" +"杭州银行上海长宁支行\n" +"杭州银行上海青浦支行\n" +"杭州银行上海北新泾支行\n" +"杭州银行上海田林东路支行\n" +"杭州银行上海大渡河路支行\n" +"杭州银行上海临汾路支行\n" +"杭州银行上海齐河路支行\n" +"杭州银行上海本溪路支行\n" +"杭州银行上海黄浦支行\n" +"杭州银行深圳分行营业部\n" +"杭州银行深圳龙岗支行\n" +"杭州银行深圳南山支行\n" +"杭州银行深圳宝安支行\n" +"杭州银行深圳福田支行\n" +"杭州银行深圳龙华支行\n" +"杭州银行深圳科技支行\n" +"杭州银行深圳福永支行\n" +"杭州银行深圳平湖支行\n" +"杭州银行舟山分行营业部\n" +"杭州银行舟山普陀支行\n" +"杭州银行舟山新城支行\n" +"杭州银行舟山定海支行\n" +"杭州银行舟山定海城关小微企业专营支行\n" +"杭州银行宁波分行营业部\n" +"杭州银行宁波慈溪支行\n" +"杭州银行宁波宗汉支行\n" +"杭州银行宁波余姚支行\n" +"杭州银行宁波科技支行\n" +"杭州银行宁波镇海支行\n" +"杭州银行宁波北仑支行\n" +"杭州银行宁波宁海支行\n" +"杭州银行宁波江北支行\n" +"杭州银行南京分行营业部\n" +"杭州银行南京江宁支行\n" +"杭州银行南京鼓楼支行\n" +"杭州银行南京河西支行\n" +"杭州银行南京软件大道支行\n" +"杭州银行南京六合支行\n" +"杭州银行南京迈皋桥支行\n" +"杭州银行南京秦淮支行\n" +"杭州银行南京浦口支行\n" +"杭州银行南京御道街支行\n" +"杭州银行南京龙江支行\n" +"杭州银行绍兴分行营业部\n" +"杭州银行绍兴诸暨支行\n" +"杭州银行绍兴新昌支行\n" +"绍兴上虞小微企业专营支行\n" +"杭州银行绍兴店口小微企业专营支行\n" +"杭州银行绍兴科技支行\n" +"杭州银行合肥分行营业部\n" +"杭州银行合肥瑶海支行\n" +"杭州银行合肥包河支行\n" +"杭州银行合肥庐江支行\n" +"杭州银行合肥科技支行\n" +"杭州银行合肥庐阳支行\n" +"杭州银行合肥长丰支行\n" +"杭州银行合肥肥东支行\n" +"杭州银行合肥肥西支行\n" +"杭州银行温州分行营业部\n" +"杭州银行温州乐清柳市小微企业专营支行\n" +"杭州银行温州苍南支行\n" +"杭州银行温州瓯海小微企业专营支行\n" +"杭州银行温州瑞安支行\n" +"杭州银行温州科技支行\n" +"杭州银行衢州分行营业部\n" +"杭州银行衢州江山支行\n" +"杭州银行金华分行营业部\n" +"杭州银行丽水分行营业部\n" +"杭州银行丽水青田支行\n" +"杭州银行嘉兴分行营业部\n" +"杭州银行桐乡支行\n" +"杭州银行桐乡崇福小微企业专营支行\n" +"杭州银行桐乡濮院小微企业专营支行\n" +"嘉兴海宁科技支行\n" +"杭州银行德清支行\n" +"杭州银行台州分行\n" +"台州温岭小微企业专营支行";List<String> supportBanks = new ArrayList(Arrays.asList(banks));Map<String, List<String>> provinceCities = new HashMap<>();Map<String, List<String>> subBranches = new HashMap<>();String content = FileUtils.readFileToString(new File(dataPath), "utf8");
//        System.out.println(content);JSONArray jsonArray = JSON.parseArray(content);jsonArray.forEach((item)-> {JSONObject jsonObject = JSONObject.parseObject(item.toString());String province = jsonObject.getString("province");String city = jsonObject.getString("city");if (!provinceCities.containsKey(province)) {List<String> list = new ArrayList<>();provinceCities.put(province, list);}if (!provinceCities.get(province).contains(city)) {provinceCities.get(province).add(city);}String bank = jsonObject.getString("bank_name");String branch = jsonObject.getString("sub_branch_name");if (supportBanks.contains(bank)) {if (!subBranches.containsKey(bank)) {List<String> list = new ArrayList<>();subBranches.put(bank, list);}if (!subBranches.get(bank).contains(branch)) {subBranches.get(bank).add(branch);}}});JSONArray provinceArray = new JSONArray();provinceCities.forEach((key, value) -> {if (StringUtils.isNotBlank(key)) {JSONObject jsonObject = new JSONObject();jsonObject.put("province", key);jsonObject.put("cities", value);provinceArray.add(jsonObject);}});List<String> list = new ArrayList<>();String[] hangzhouList = hangzhouBank.split("\n");for (final String s : hangzhouList) {list.add(s);}subBranches.put("杭州银行", list);System.out.println(subBranches);System.out.println(provinceArray);}}

中国指定银行支行数据及省市数据获取相关推荐

  1. 标准数据中国省市区+银行支行数据

    现在省市区这样的地址需求越来越多,但是始终没有一个统一的标准.这里希望能够一起完善一份统一的数据. 即使能够抛砖引玉也好. 具体介绍参考这里:标准数据中国省市区+银行支行数据 也可以直接看数据: gi ...

  2. 数据猿·金猿榜丨2017中国医疗大数据领域最具潜力创业公司

    [数据猿导读] "2017中国医疗大数据领域最具潜力创业公司"盘点源于数据猿推出的"金猿榜"系列内容,旨在通过媒体的方式与原则,发掘大数据领域最具潜力的创新型企 ...

  3. asp 取数据 计算_地学数据 | 地理空间数据获取方式汇总

    1.测绘地理信息局会 (http://www.webmap.cn/main.do?method=index) 该网站提供:30米全球地表覆盖数据,GlobeLand30能够提供包括:地理位置.分布范围 ...

  4. python作中国地图背景气泡图_exce表格中怎么制作中国地图背景数据气泡图

    exce表格中怎么制作中国地图背景数据气泡图 exce表格中怎么制作中国地图背景数据气泡图?excel表格中想要在中国地图上显示气泡来看看地区分布情况,该怎么设置中国地图气泡图表呢?下面我们就来看看详 ...

  5. CnOpenData中国专利文本数据简介

    中国专利文本数据 一.数据简介 中国专利文本数据共涵盖两个部分内容,分别是:专利描述文本信息与专利权利要求文本信息.    专利描述文本信息是对各抓力的结构.技术要点.使用方法作出清楚.完整的介绍,它 ...

  6. 【金猿投融展】DataPipeline——成为中国的世界级数据中间件厂商

    投融资项目·DataPipeline 本项目由DataPipeline投递并参与"数据猿年度金猿策划活动--2021大数据产业最具投资价值榜单及奖项"评选. 数据智能产业创新服务媒 ...

  7. DataPipeline宣布完成数千万元B轮融资,加速构建中国的世界级数据中间件产品

    "[报告下载]后台回复关键词"数据智能"可免费下载数据猿最新发布的完整高清版<2021中国数据智能产业发展报告> 大数据产业创新服务媒体 --聚焦数据 · 改 ...

  8. 中国物种物候和地面物候数据获取方法

    物候学是研究自然界的植物(包括农作物).动物和环境条件(气候.水文.土壤条件)的周期变化之间相互关系的科学.它的目的是认识自然季节现象变化的规律,以服务于农业生产和科学研究. [3-4] 物候既可指生 ...

  9. 大数据离线阶段--数据获取

    大数据离线阶段 -----数据获取原理 数据分析 1. 数据分析定义 数据分析离不开数据,计量和记录一起促成了数据的诞生.伴随着数据记录的发展(尤其是技术),人类受益也越来越多,计算机出现带来的数字测 ...

  10. 中国医疗大数据“痛点” :孤岛怎么破

    近年来,医疗大数据炙手可热.那么何为医疗大数据? 与医疗健康相关的信息,均可被归入医疗大数据的范畴,数据来源可以是医疗和科研机构,亦可来源于个人甚至政府.其应用场景十分广泛,如药品研发,精准医疗,医保 ...

最新文章

  1. window.open(url?param=+paramvalue) 服务端 乱码问题解决
  2. 参加web前端培训需要注意什么
  3. NA-NP-IE系列实验之前三个实验小结
  4. 联邦快递被曝拒送华为手机进入美国,即便是从英国寄出
  5. 13. Leetcode 349. 两个数组的交集 (数组-分离双指针)
  6. FISCO BCOS 2.0发布:新增群组架构克服吞吐瓶颈
  7. java循环语句三角形_JAVA——程序流程控制——循环语句——for循环(打印三角形)...
  8. 聊一聊,用户画像的前世今生
  9. Spring boot (2)--- 基础
  10. Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for...
  11. MongoDB中文问题
  12. mysql 升序和降序
  13. 一秒批量修改文件扩展名(后缀名)
  14. Typec转hdmi+vga+pd+3.5音频方案设计参考电路|CS5266+CS201方案电路图|Typec扩展坞五合一方案设计
  15. 中国农业银行研发中心2021实习生笔试题
  16. Arduino提高篇04—U8g2库驱动OLED
  17. 教育培训行业市场营销推广方案分享
  18. 【推荐】产品经理需求模板,案例等文档合集15篇
  19. 我家的网络、极路由和对小米路由器的期盼
  20. Java WebIDE:CodeMirror+Vue+JavaCompiler

热门文章

  1. build lavas 失败_基础教程 - 快速开始 PWA 工程 - 《Lavas 指导教程文档》 - 书栈网 · BookStack...
  2. 基于SSM的境外电商后台管理系统(含word论文文档)
  3. 使用TestNG-abbot测试GUI
  4. geopandas下载问题
  5. 小企业主代理记账基础知识
  6. 华硕服务器主板那个系列好,华硕主板型号性价比排行 华硕主板那个性价最好用...
  7. Python 欧卡2导入音乐 批量转ogg格式
  8. sql添加字段和字段说明
  9. 区块链开发区块链架构与应用PPT
  10. 教你如何用两个栈实现一个队列