获取字符串中地址所属的省级名称
场景
输入:崂山区CBD及各大型购物中心
希望输出:山东省
准备
下载省市级数据,可上网爬一下,或是用现成的结果:https://github.com/modood/Administrative-divisions-of-China
剩下的是代码实现,本文不使用正则,简单粗暴的实现上述功能。
实现
本文使用数据:https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pcas.json
# @Time : 2020/12/13
# @Author : 大太阳小白
# @Software: PyCharm
# @blog:https://blog.csdn.net/weixin_41579863
import jsonwith open("city.json", 'r', encoding='utf-8') as r:local_json = json.load(r)def get_local(name, data=local_json, local_name="", result=[]):local_list = []for item in data:if item in name:if local_name:result.append({"name": item, "match": len(item), "local": local_name})else:local_list.append({"name": item, "match": len(item)*10, "local": item})else:if type(data) == dict:if local_name:get_local(name, data[item], local_name, result=result)else:get_local(name, data[item], item, result=local_list)return sorted(local_list, key=lambda x: x['match'], reverse=True)if __name__ == '__main__':test_name = "崂山区CBD及各大型购物中心"z_name = get_local(test_name)print(z_name)
输出:[{'name': '崂山区', 'match': 3, 'local': '山东省'}]
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
