This commit is contained in:
2025-09-10 10:22:06 +08:00
parent 6a32f010d4
commit a15c6c1767
3 changed files with 136 additions and 132 deletions

215
Log/1.log
View File

@@ -1,66 +1,67 @@
C:\Users\Administrator\.conda\envs\yunnan\python.exe D:\dsWork\YunNanProject\Tools\T2_GetJson.py C:\Users\Administrator\.conda\envs\yunnan\python.exe -X pycache_prefix=C:\Users\Administrator\AppData\Local\JetBrains\PyCharm2025.2\cpython-cache "C:/Program Files/JetBrains/PyCharm 2025.2.0.1/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 51895 --file D:\dsWork\YunNanProject\Tools\T2_GetJson.py
行 3: 云南省 -> 全称: 云南省, 行政区划码: 530000000 Connected to: <socket.socket fd=676, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 51896), raddr=('127.0.0.1', 51895)>.
4: 未找到 '昆明市' 的相关信息 已连接到 pydev 调试器(内部版本号 252.23892.515)3: 云南省 -> 全称: 云南省, 行政区划码: 530000000
5: 未找到 '五华区' 的相关信息 4: 昆明市 -> 全称: 昆明市, 行政区划码: 530100000
6: 未找到 '盘龙区' 的相关信息 5: 五华区 -> 全称: 五华区, 行政区划码: 530102000
7: 未找到 '官渡区' 的相关信息 6: 盘龙区 -> 全称: 盘龙区, 行政区划码: 530103000
8: 未找到 '西山区' 的相关信息 7: 官渡区 -> 全称: 官渡区, 行政区划码: 530111000
9: 未找到 '东川区' 的相关信息 8: 西山区 -> 全称: 西山区, 行政区划码: 530112000
10: 未找到 '呈贡区' 的相关信息 9: 东川区 -> 全称: 东川区, 行政区划码: 530113000
行 11: 未找到 '晋宁区' 的相关信息 行 10: 呈贡区 -> 全称: 呈贡区, 行政区划码: 530114000
行 12: 未找到 '富民县' 的相关信息 行 11: 晋宁区 -> 全称: 晋宁区, 行政区划码: 530115000
行 13: 未找到 '宜良县' 的相关信息 行 12: 富民县 -> 全称: 富民县, 行政区划码: 530124000
行 13: 宜良县 -> 全称: 宜良县, 行政区划码: 530125000
行 14: 石林县 -> 全称: 石林彝族自治县, 行政区划码: 530126000 行 14: 石林县 -> 全称: 石林彝族自治县, 行政区划码: 530126000
行 15: 未找到 '嵩明县' 的相关信息 行 15: 嵩明县 -> 全称: 嵩明县, 行政区划码: 530127000
行 16: 禄劝县 -> 全称: 禄劝彝族苗族自治县, 行政区划码: 530128000 行 16: 禄劝县 -> 全称: 禄劝彝族苗族自治县, 行政区划码: 530128000
行 17: 寻甸县 -> 全称: 寻甸回族彝族自治县, 行政区划码: 530129000 行 17: 寻甸县 -> 全称: 寻甸回族彝族自治县, 行政区划码: 530129000
行 18: 未找到 '安宁市' 的相关信息 行 18: 安宁市 -> 全称: 安宁市, 行政区划码: 530181000
行 19: 未找到 '曲靖市' 的相关信息 行 19: 曲靖市 -> 全称: 曲靖市, 行政区划码: 530300000
行 20: 未找到 '麒麟区' 的相关信息 行 20: 麒麟区 -> 全称: 麒麟区, 行政区划码: 530302000
行 21: 未找到 '沾益区' 的相关信息 行 21: 沾益区 -> 全称: 沾益区, 行政区划码: 530303000
行 22: 未找到 '马龙区' 的相关信息 行 22: 马龙区 -> 全称: 马龙区, 行政区划码: 530304000
行 23: 未找到 '陆良县' 的相关信息 行 23: 陆良县 -> 全称: 陆良县, 行政区划码: 530322000
行 24: 未找到 '师宗县' 的相关信息 行 24: 师宗县 -> 全称: 师宗县, 行政区划码: 530323000
行 25: 未找到 '罗平县' 的相关信息 行 25: 罗平县 -> 全称: 罗平县, 行政区划码: 530324000
行 26: 未找到 '富源县' 的相关信息 行 26: 富源县 -> 全称: 富源县, 行政区划码: 530325000
行 27: 未找到 '会泽县' 的相关信息 行 27: 会泽县 -> 全称: 会泽县, 行政区划码: 530326000
行 28: 未找到 '宣威市' 的相关信息 行 28: 宣威市 -> 全称: 宣威市, 行政区划码: 530381000
行 29: 未找到 '玉溪市' 的相关信息 行 29: 玉溪市 -> 全称: 玉溪市, 行政区划码: 530400000
行 30: 未找到 '红塔区' 的相关信息 行 30: 红塔区 -> 全称: 红塔区, 行政区划码: 530402000
行 31: 未找到 '江川区' 的相关信息 行 31: 江川区 -> 全称: 江川区, 行政区划码: 530403000
行 32: 澄江县 -> 全称: 澄江市, 行政区划码: 530481000 行 32: 澄江县 -> 全称: 澄江市, 行政区划码: 530481000
行 33: 未找到 '通海县' 的相关信息 行 33: 通海县 -> 全称: 通海县, 行政区划码: 530423000
行 34: 未找到 '华宁县' 的相关信息 行 34: 华宁县 -> 全称: 华宁县, 行政区划码: 530424000
行 35: 未找到 '易门县' 的相关信息 行 35: 易门县 -> 全称: 易门县, 行政区划码: 530425000
行 36: 峨山县 -> 全称: 峨山彝族自治县, 行政区划码: 530426000 行 36: 峨山县 -> 全称: 峨山彝族自治县, 行政区划码: 530426000
行 37: 新平县 -> 全称: 新平彝族傣族自治县, 行政区划码: 530427000 行 37: 新平县 -> 全称: 新平彝族傣族自治县, 行政区划码: 530427000
行 38: 元江县 -> 全称: 元江哈尼族彝族傣族自治县, 行政区划码: 530428000 行 38: 元江县 -> 全称: 元江哈尼族彝族傣族自治县, 行政区划码: 530428000
行 39: 未找到 '保山市' 的相关信息 行 39: 保山市 -> 全称: 保山市, 行政区划码: 530500000
行 40: 未找到 '隆阳区' 的相关信息 行 40: 隆阳区 -> 全称: 隆阳区, 行政区划码: 530502000
行 41: 未找到 '施甸县' 的相关信息 行 41: 施甸县 -> 全称: 施甸县, 行政区划码: 530521000
行 42: 未找到 '龙陵县' 的相关信息 行 42: 龙陵县 -> 全称: 龙陵县, 行政区划码: 530523000
行 43: 未找到 '昌宁县' 的相关信息 行 43: 昌宁县 -> 全称: 昌宁县, 行政区划码: 530524000
行 44: 未找到 '腾冲市' 的相关信息 行 44: 腾冲市 -> 全称: 腾冲市, 行政区划码: 530581000
行 45: 未找到 '昭通市' 的相关信息 行 45: 昭通市 -> 全称: 昭通市, 行政区划码: 530600000
行 46: 未找到 '昭阳区' 的相关信息 行 46: 昭阳区 -> 全称: 昭阳区, 行政区划码: 530602000
行 47: 未找到 '鲁甸县' 的相关信息 行 47: 鲁甸县 -> 全称: 鲁甸县, 行政区划码: 530621000
行 48: 未找到 '巧家县' 的相关信息 行 48: 巧家县 -> 全称: 巧家县, 行政区划码: 530622000
行 49: 未找到 '盐津县' 的相关信息 行 49: 盐津县 -> 全称: 盐津县, 行政区划码: 530623000
行 50: 未找到 '大关县' 的相关信息 行 50: 大关县 -> 全称: 大关县, 行政区划码: 530624000
行 51: 未找到 '永善县' 的相关信息 行 51: 永善县 -> 全称: 永善县, 行政区划码: 530625000
行 52: 未找到 '绥江县' 的相关信息 行 52: 绥江县 -> 全称: 绥江县, 行政区划码: 530626000
行 53: 未找到 '镇雄县' 的相关信息 行 53: 镇雄县 -> 全称: 镇雄县, 行政区划码: 530627000
行 54: 未找到 '彝良县' 的相关信息 行 54: 彝良县 -> 全称: 彝良县, 行政区划码: 530628000
行 55: 未找到 '威信县' 的相关信息 行 55: 威信县 -> 全称: 威信县, 行政区划码: 530629000
行 56: 未找到 '水富市' 的相关信息 行 56: 水富市 -> 全称: 水富市, 行政区划码: 530681000
行 57: 未找到 '丽江市' 的相关信息 行 57: 丽江市 -> 全称: 丽江市, 行政区划码: 530700000
行 58: 未找到 '古城区' 的相关信息 行 58: 古城区 -> 全称: 古城区, 行政区划码: 530702000
行 59: 玉龙县 -> 全称: 玉龙纳西族自治县, 行政区划码: 530721000 行 59: 玉龙县 -> 全称: 玉龙纳西族自治县, 行政区划码: 530721000
行 60: 未找到 '永胜县' 的相关信息 行 60: 永胜县 -> 全称: 永胜县, 行政区划码: 530722000
行 61: 未找到 '华坪县' 的相关信息 行 61: 华坪县 -> 全称: 华坪县, 行政区划码: 530723000
行 62: 宁蒗县 -> 全称: 宁蒗彝族自治县, 行政区划码: 530724000 行 62: 宁蒗县 -> 全称: 宁蒗彝族自治县, 行政区划码: 530724000
行 63: 未找到 '普洱市' 的相关信息 行 63: 普洱市 -> 全称: 普洱市, 行政区划码: 530800000
行 64: 未找到 '思茅区' 的相关信息 行 64: 思茅区 -> 全称: 思茅区, 行政区划码: 530802000
行 65: 宁洱县 -> 全称: 宁洱哈尼族彝族自治县, 行政区划码: 530821000 行 65: 宁洱县 -> 全称: 宁洱哈尼族彝族自治县, 行政区划码: 530821000
行 66: 墨江县 -> 全称: 墨江哈尼族自治县, 行政区划码: 530822000 行 66: 墨江县 -> 全称: 墨江哈尼族自治县, 行政区划码: 530822000
行 67: 景东县 -> 全称: 景东彝族自治县, 行政区划码: 530823000 行 67: 景东县 -> 全称: 景东彝族自治县, 行政区划码: 530823000
@@ -70,80 +71,80 @@ C:\Users\Administrator\.conda\envs\yunnan\python.exe D:\dsWork\YunNanProject\Too
行 71: 孟连县 -> 全称: 孟连傣族拉祜族佤族自治县, 行政区划码: 530827000 行 71: 孟连县 -> 全称: 孟连傣族拉祜族佤族自治县, 行政区划码: 530827000
行 72: 澜沧县 -> 全称: 澜沧拉祜族自治县, 行政区划码: 530828000 行 72: 澜沧县 -> 全称: 澜沧拉祜族自治县, 行政区划码: 530828000
行 73: 西盟县 -> 全称: 西盟佤族自治县, 行政区划码: 530829000 行 73: 西盟县 -> 全称: 西盟佤族自治县, 行政区划码: 530829000
行 74: 未找到 '临沧市' 的相关信息 行 74: 临沧市 -> 全称: 临沧市, 行政区划码: 530900000
行 75: 未找到 '临翔区' 的相关信息 行 75: 临翔区 -> 全称: 临翔区, 行政区划码: 530902000
行 76: 未找到 '凤庆县' 的相关信息 行 76: 凤庆县 -> 全称: 凤庆县, 行政区划码: 530921000
行 77: 未找到 '云县' 的相关信息 行 77: 云县 -> 全称: 云县, 行政区划码: 530922000
行 78: 未找到 '永德县' 的相关信息 行 78: 永德县 -> 全称: 永德县, 行政区划码: 530923000
行 79: 未找到 '镇康县' 的相关信息 行 79: 镇康县 -> 全称: 镇康县, 行政区划码: 530924000
行 80: 双江县 -> 全称: 双江拉祜族佤族布朗族傣族自治县, 行政区划码: 530925000 行 80: 双江县 -> 全称: 双江拉祜族佤族布朗族傣族自治县, 行政区划码: 530925000
行 81: 耿马县 -> 全称: 耿马傣族佤族自治县, 行政区划码: 530926000 行 81: 耿马县 -> 全称: 耿马傣族佤族自治县, 行政区划码: 530926000
行 82: 沧源县 -> 全称: 沧源佤族自治县, 行政区划码: 530927000 行 82: 沧源县 -> 全称: 沧源佤族自治县, 行政区划码: 530927000
行 83: 楚雄州 -> 全称: 楚雄彝族自治州, 行政区划码: 532300000 行 83: 楚雄州 -> 全称: 楚雄彝族自治州, 行政区划码: 532300000
行 84: 未找到 '楚雄市' 的相关信息 行 84: 楚雄市 -> 全称: 楚雄市, 行政区划码: 532301000
行 85: 禄丰市 -> 全称: 禄丰县, 行政区划码: 532331000 行 85: 禄丰市 -> 全称: 禄丰县, 行政区划码: 532331000
行 86: 未找到 '双柏县' 的相关信息 行 86: 双柏县 -> 全称: 双柏县, 行政区划码: 532322000
行 87: 未找到 '牟定县' 的相关信息 行 87: 牟定县 -> 全称: 牟定县, 行政区划码: 532323000
行 88: 未找到 '南华县' 的相关信息 行 88: 南华县 -> 全称: 南华县, 行政区划码: 532324000
行 89: 未找到 '姚安县' 的相关信息 行 89: 姚安县 -> 全称: 姚安县, 行政区划码: 532325000
行 90: 未找到 '大姚县' 的相关信息 行 90: 大姚县 -> 全称: 大姚县, 行政区划码: 532326000
行 91: 未找到 '永仁县' 的相关信息 行 91: 永仁县 -> 全称: 永仁县, 行政区划码: 532327000
行 92: 未找到 '元谋县' 的相关信息 行 92: 元谋县 -> 全称: 元谋县, 行政区划码: 532328000
行 93: 未找到 '武定县' 的相关信息 行 93: 武定县 -> 全称: 武定县, 行政区划码: 532329000
行 94: 红河州 -> 全称: 红河哈尼族彝族自治州, 行政区划码: 532500000 行 94: 红河州 -> 全称: 红河哈尼族彝族自治州, 行政区划码: 532500000
行 95: 未找到 '个旧市' 的相关信息 行 95: 个旧市 -> 全称: 个旧市, 行政区划码: 532501000
行 96: 未找到 '开远市' 的相关信息 行 96: 开远市 -> 全称: 开远市, 行政区划码: 532502000
行 97: 未找到 '蒙自市' 的相关信息 行 97: 蒙自市 -> 全称: 蒙自市, 行政区划码: 532503000
行 98: 未找到 '弥勒市' 的相关信息 行 98: 弥勒市 -> 全称: 弥勒市, 行政区划码: 532504000
行 99: 屏边县 -> 全称: 屏边苗族自治县, 行政区划码: 532523000 行 99: 屏边县 -> 全称: 屏边苗族自治县, 行政区划码: 532523000
行 100: 未找到 '建水县' 的相关信息 行 100: 建水县 -> 全称: 建水县, 行政区划码: 532524000
行 101: 未找到 '石屏县' 的相关信息 行 101: 石屏县 -> 全称: 石屏县, 行政区划码: 532525000
行 102: 未找到 '泸西县' 的相关信息 行 102: 泸西县 -> 全称: 泸西县, 行政区划码: 532527000
行 103: 未找到 '元阳县' 的相关信息 行 103: 元阳县 -> 全称: 元阳县, 行政区划码: 532528000
行 104: 未找到 '红河县' 的相关信息 行 104: 红河县 -> 全称: 红河县, 行政区划码: 532529000
行 105: 金平县 -> 全称: 金平苗族瑶族傣族自治县, 行政区划码: 532530000 行 105: 金平县 -> 全称: 金平苗族瑶族傣族自治县, 行政区划码: 532530000
行 106: 绿春县 -> 全称: 绿春县, 行政区划码: 532531000 行 106: 绿春县 -> 全称: 绿春县, 行政区划码: 532531000
行 107: 河口县 -> 全称: 河口瑶族自治县, 行政区划码: 532532000 行 107: 河口县 -> 全称: 河口瑶族自治县, 行政区划码: 532532000
行 108: 文山州 -> 全称: 文山壮族苗族自治州, 行政区划码: 532600000 行 108: 文山州 -> 全称: 文山壮族苗族自治州, 行政区划码: 532600000
行 109: 未找到 '文山市' 的相关信息 行 109: 文山市 -> 全称: 文山市, 行政区划码: 532601000
行 110: 未找到 '砚山县' 的相关信息 行 110: 砚山县 -> 全称: 砚山县, 行政区划码: 532622000
行 111: 未找到 '西畴县' 的相关信息 行 111: 西畴县 -> 全称: 西畴县, 行政区划码: 532623000
行 112: 未找到 '麻栗坡县' 的相关信息 行 112: 麻栗坡县 -> 全称: 麻栗坡县, 行政区划码: 532624000
行 113: 未找到 '马关县' 的相关信息 行 113: 马关县 -> 全称: 马关县, 行政区划码: 532625000
行 114: 未找到 '丘北县' 的相关信息 行 114: 丘北县 -> 全称: 丘北县, 行政区划码: 532626000
行 115: 未找到 '广南县' 的相关信息 行 115: 广南县 -> 全称: 广南县, 行政区划码: 532627000
行 116: 未找到 '富宁县' 的相关信息 行 116: 富宁县 -> 全称: 富宁县, 行政区划码: 532628000
行 117: 西双版纳州 -> 全称: 西双版纳傣族自治州, 行政区划码: 532800000 行 117: 西双版纳州 -> 全称: 西双版纳傣族自治州, 行政区划码: 532800000
行 118: 未找到 '景洪市' 的相关信息 行 118: 景洪市 -> 全称: 景洪市, 行政区划码: 532801000
行 119: 未找到 '勐海县' 的相关信息 行 119: 勐海县 -> 全称: 勐海县, 行政区划码: 532822000
行 120: 未找到 '勐腊县' 的相关信息 行 120: 勐腊县 -> 全称: 勐腊县, 行政区划码: 532823000
行 121: 大理州 -> 全称: 大理白族自治州, 行政区划码: 532900000 行 121: 大理州 -> 全称: 大理白族自治州, 行政区划码: 532900000
行 122: 未找到 '大理市' 的相关信息 行 122: 大理市 -> 全称: 大理市, 行政区划码: 532901000
行 123: 漾濞县 -> 全称: 漾濞彝族自治县, 行政区划码: 532922000 行 123: 漾濞县 -> 全称: 漾濞彝族自治县, 行政区划码: 532922000
行 124: 未找到 '祥云县' 的相关信息 行 124: 祥云县 -> 全称: 祥云县, 行政区划码: 532923000
行 125: 未找到 '宾川县' 的相关信息 行 125: 宾川县 -> 全称: 宾川县, 行政区划码: 532924000
行 126: 未找到 '弥渡县' 的相关信息 行 126: 弥渡县 -> 全称: 弥渡县, 行政区划码: 532925000
行 127: 南涧县 -> 全称: 南涧彝族自治县, 行政区划码: 532926000 行 127: 南涧县 -> 全称: 南涧彝族自治县, 行政区划码: 532926000
行 128: 巍山县 -> 全称: 巍山彝族回族自治县, 行政区划码: 532927000 行 128: 巍山县 -> 全称: 巍山彝族回族自治县, 行政区划码: 532927000
行 129: 未找到 '永平县' 的相关信息 行 129: 永平县 -> 全称: 永平县, 行政区划码: 532928000
行 130: 未找到 '云龙县' 的相关信息 行 130: 云龙县 -> 全称: 云龙县, 行政区划码: 532929000
行 131: 未找到 '洱源县' 的相关信息 行 131: 洱源县 -> 全称: 洱源县, 行政区划码: 532930000
行 132: 未找到 '剑川县' 的相关信息 行 132: 剑川县 -> 全称: 剑川县, 行政区划码: 532931000
行 133: 未找到 '鹤庆县' 的相关信息 行 133: 鹤庆县 -> 全称: 鹤庆县, 行政区划码: 532932000
行 134: 德宏州 -> 全称: 德宏傣族景颇族自治州, 行政区划码: 533100000 行 134: 德宏州 -> 全称: 德宏傣族景颇族自治州, 行政区划码: 533100000
行 135: 未找到 '瑞丽市' 的相关信息 行 135: 瑞丽市 -> 全称: 瑞丽市, 行政区划码: 533102000
行 136: 芒市 -> 全称: 芒市, 行政区划码: 533103000 行 136: 芒市 -> 全称: 芒市, 行政区划码: 533103000
行 137: 未找到 '梁河县' 的相关信息 行 137: 梁河县 -> 全称: 梁河县, 行政区划码: 533122000
行 138: 未找到 '盈江县' 的相关信息 行 138: 盈江县 -> 全称: 盈江县, 行政区划码: 533123000
行 139: 未找到 '陇川县' 的相关信息 行 139: 陇川县 -> 全称: 陇川县, 行政区划码: 533124000
行 140: 怒江州 -> 全称: 怒江傈僳族自治州, 行政区划码: 533300000 行 140: 怒江州 -> 全称: 怒江傈僳族自治州, 行政区划码: 533300000
行 141: 未找到 '泸水市' 的相关信息 行 141: 泸水市 -> 全称: 泸水市, 行政区划码: 533301000
行 142: 未找到 '福贡县' 的相关信息 行 142: 福贡县 -> 全称: 福贡县, 行政区划码: 533323000
行 143: 贡山县 -> 全称: 贡山独龙族怒族自治县, 行政区划码: 533324000 行 143: 贡山县 -> 全称: 贡山独龙族怒族自治县, 行政区划码: 533324000
行 144: 兰坪县 -> 全称: 兰坪白族普米族自治县, 行政区划码: 533325000 行 144: 兰坪县 -> 全称: 兰坪白族普米族自治县, 行政区划码: 533325000
行 145: 迪庆州 -> 全称: 迪庆藏族自治州, 行政区划码: 533400000 行 145: 迪庆州 -> 全称: 迪庆藏族自治州, 行政区划码: 533400000
行 146: 未找到 '香格里拉市' 的相关信息 行 146: 香格里拉市 -> 全称: 香格里拉市, 行政区划码: 533401000
行 147: 未找到 '德钦县' 的相关信息 行 147: 德钦县 -> 全称: 德钦县, 行政区划码: 533422000
行 148: 维西县 -> 全称: 维西傈僳族自治县, 行政区划码: 533423000 行 148: 维西县 -> 全称: 维西傈僳族自治县, 行政区划码: 533423000
进程已结束,退出代码为 0 进程已结束,退出代码为 0

View File

@@ -36,7 +36,7 @@ def load_jiancheng_data():
def load_yunnan_area_data(): def load_yunnan_area_data():
"""加载云南省行政区划完整数据""" """加载云南省行政区划完整数据(非递归实现)"""
area_path = os.path.join( area_path = os.path.join(
os.path.dirname(os.path.dirname(__file__)), os.path.dirname(os.path.dirname(__file__)),
'Dict', 'Dict',
@@ -53,26 +53,30 @@ def load_yunnan_area_data():
print(f"错误:{area_path} 文件格式不正确") print(f"错误:{area_path} 文件格式不正确")
return {} return {}
# 递归遍历所有行政区划节点
area_map = {} area_map = {}
# 1. 添加省级数据
province_name = data.get('name')
province_code = data.get('code')
if province_name and province_code:
area_map[province_name] = {'full_name': province_name, 'area_code': province_code}
def traverse_nodes(nodes): # 2. 遍历城市和区县(非递归实现)
if isinstance(nodes, list): citys = data.get('citys', [])
for node in nodes: for city in citys:
traverse_nodes(node) # 添加城市数据
elif isinstance(nodes, dict): city_name = city.get('name')
# 提取名称和代码 city_code = city.get('code')
name = nodes.get('name') if city_name and city_code:
code = nodes.get('code') or nodes.get('area_code') area_map[city_name] = {'full_name': city_name, 'area_code': city_code}
if name and code:
area_map[name] = {'full_name': name, 'area_code': code}
# 处理子节点 # 添加区县数据
children = nodes.get('children') areas = city.get('areas', [])
if children: for area in areas:
traverse_nodes(children) area_name = area.get('name')
area_code = area.get('code')
if area_name and area_code:
area_map[area_name] = {'full_name': area_name, 'area_code': area_code}
traverse_nodes(data)
return area_map return area_map
@@ -82,23 +86,22 @@ def query_area_info(query_str):
:param query_str: 简称或全称 :param query_str: 简称或全称
:return: 包含full_name和area_code的字典未找到返回None :return: 包含full_name和area_code的字典未找到返回None
""" """
# 修复:显式加载数据并初始化映射字典
abbrev_map, fullname_map = load_jiancheng_data() abbrev_map, fullname_map = load_jiancheng_data()
yunnan_area_map = load_yunnan_area_data() yunnan_area_map = load_yunnan_area_data()
# 1. 先查简称映射表 # 1. 先查询完整行政区划数据(最重要修正)
if query_str in abbrev_map:
return abbrev_map[query_str]
# 2. 再查完整行政区划数据
if query_str in yunnan_area_map: if query_str in yunnan_area_map:
return yunnan_area_map[query_str] return yunnan_area_map[query_str]
# 3. 最后查全称映射表 # 2. 再查简称映射表(处理特殊名称)
if query_str in abbrev_map:
return abbrev_map[query_str]
# 3. 最后查全称映射表+模糊匹配
if query_str in fullname_map: if query_str in fullname_map:
return fullname_map[query_str] return fullname_map[query_str]
# 4. 尝试模糊匹配 # 4. 模糊匹配保持不变
for name, info in yunnan_area_map.items(): for name, info in yunnan_area_map.items():
if query_str in name or name in query_str: if query_str in name or name in query_str:
return info return info