中国指定银行支行数据及省市数据获取

源数据

想分析一下,中国的省份城市数据,在网上找了一份银行支行数据中国支行数据,想把省份城市数据整理成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);

    }

}
发布了35 篇原创文章 · 获赞 81 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/chanllenge/article/details/91038032