This commit is contained in:
2025-09-10 14:26:55 +08:00
parent 7799142c32
commit 72427e9e43
12 changed files with 955 additions and 566 deletions

565
Log/1.log
View File

@@ -1,150 +1,419 @@
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
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)>.
已连接到 pydev 调试器(内部版本号 252.23892.515)行 3: 云南省 -> 全称: 云南省, 行政区划码: 530000000
行 4: 昆明市 -> 全称: 昆明市, 行政区划码: 530100000
行 5: 五华区 -> 全称: 五华区, 行政区划码: 530102000
行 6: 盘龙区 -> 全称: 盘龙区, 行政区划码: 530103000
行 7: 官渡区 -> 全称: 官渡区, 行政区划码: 530111000
行 8: 西山区 -> 全称: 西山区, 行政区划码: 530112000
行 9: 东川区 -> 全称: 东川区, 行政区划码: 530113000
行 10: 呈贡区 -> 全称: 呈贡区, 行政区划码: 530114000
行 11: 晋宁区 -> 全称: 晋宁区, 行政区划码: 530115000
行 12: 富民县 -> 全称: 富民县, 行政区划码: 530124000
行 13: 宜良县 -> 全称: 宜良县, 行政区划码: 530125000
行 14: 石林县 -> 全称: 石林彝族自治县, 行政区划码: 530126000
行 15: 嵩明县 -> 全称: 嵩明县, 行政区划码: 530127000
16: 禄劝县 -> 全称: 禄劝彝族苗族自治县, 行政区划码: 530128000
17: 寻甸县 -> 全称: 寻甸回族彝族自治县, 行政区划码: 530129000
18: 安宁市 -> 全称: 安宁市, 行政区划码: 530181000
19: 曲靖市 -> 全称: 曲靖市, 行政区划码: 530300000
行 20: 麒麟区 -> 全称: 麒麟区, 行政区划码: 530302000
行 21: 沾益区 -> 全称: 沾益区, 行政区划码: 530303000
行 22: 马龙区 -> 全称: 马龙区, 行政区划码: 530304000
行 23: 陆良县 -> 全称: 陆良县, 行政区划码: 530322000
行 24: 师宗县 -> 全称: 师宗县, 行政区划码: 530323000
行 25: 罗平县 -> 全称: 罗平县, 行政区划码: 530324000
行 26: 富源县 -> 全称: 富源县, 行政区划码: 530325000
行 27: 会泽县 -> 全称: 会泽县, 行政区划码: 530326000
行 28: 宣威市 -> 全称: 宣威市, 行政区划码: 530381000
行 29: 玉溪市 -> 全称: 玉溪市, 行政区划码: 530400000
30: 红塔区 -> 全称: 红塔区, 行政区划码: 530402000
31: 江川区 -> 全称: 江川区, 行政区划码: 530403000
32: 澄江县 -> 全称: 澄江市, 行政区划码: 530481000
33: 通海县 -> 全称: 通海县, 行政区划码: 530423000
行 34: 华宁县 -> 全称: 华宁县, 行政区划码: 530424000
行 35: 易门县 -> 全称: 易门县, 行政区划码: 530425000
行 36: 峨山县 -> 全称: 峨山彝族自治县, 行政区划码: 530426000
行 37: 平县 -> 全称: 新平彝族傣族自治县, 行政区划码: 530427000
行 38: 元江县 -> 全称: 元江哈尼族彝族傣族自治县, 行政区划码: 530428000
行 39: 保山市 -> 全称: 保山市, 行政区划码: 530500000
行 40: 隆阳区 -> 全称: 隆阳区, 行政区划码: 530502000
行 41: 施甸县 -> 全称: 施甸县, 行政区划码: 530521000
行 42: 龙陵县 -> 全称: 龙陵县, 行政区划码: 530523000
行 43: 昌宁县 -> 全称: 昌宁县, 行政区划码: 530524000
行 44: 腾冲市 -> 全称: 腾冲市, 行政区划码: 530581000
行 45: 昭通市 -> 全称: 昭通市, 行政区划码: 530600000
行 46: 昭阳区 -> 全称: 昭阳区, 行政区划码: 530602000
行 47: 鲁甸县 -> 全称: 鲁甸县, 行政区划码: 530621000
行 48: 巧家县 -> 全称: 巧家县, 行政区划码: 530622000
行 49: 盐津县 -> 全称: 盐津县, 行政区划码: 530623000
行 50: 大关县 -> 全称: 大关县, 行政区划码: 530624000
行 51: 永善县 -> 全称: 永善县, 行政区划码: 530625000
行 52: 绥江县 -> 全称: 绥江县, 行政区划码: 530626000
行 53: 镇雄县 -> 全称: 镇雄县, 行政区划码: 530627000
行 54: 彝良县 -> 全称: 彝良县, 行政区划码: 530628000
行 55: 威信县 -> 全称: 威信县, 行政区划码: 530629000
行 56: 水富市 -> 全称: 水富市, 行政区划码: 530681000
行 57: 丽江市 -> 全称: 丽江市, 行政区划码: 530700000
行 58: 古城区 -> 全称: 古城区, 行政区划码: 530702000
行 59: 玉龙县 -> 全称: 玉龙纳西族自治县, 行政区划码: 530721000
行 60: 永胜县 -> 全称: 永胜县, 行政区划码: 530722000
行 61: 华坪县 -> 全称: 华坪县, 行政区划码: 530723000
行 62: 宁蒗县 -> 全称: 宁蒗彝族自治县, 行政区划码: 530724000
行 63: 普洱市 -> 全称: 普洱市, 行政区划码: 530800000
行 64: 思茅区 -> 全称: 思茅区, 行政区划码: 530802000
行 65: 宁洱县 -> 全称: 宁洱哈尼族彝族自治县, 行政区划码: 530821000
行 66: 墨江县 -> 全称: 墨江哈尼族自治县, 行政区划码: 530822000
行 67: 景东县 -> 全称: 景东彝族自治县, 行政区划码: 530823000
行 68: 景谷县 -> 全称: 景谷傣族彝族自治县, 行政区划码: 530824000
行 69: 镇沅县 -> 全称: 镇沅彝族哈尼族拉祜族自治县, 行政区划码: 530825000
行 70: 江城县 -> 全称: 江城哈尼族彝族自治县, 行政区划码: 530826000
行 71: 孟连县 -> 全称: 孟连傣族拉祜族佤族自治县, 行政区划码: 530827000
行 72: 澜沧县 -> 全称: 澜沧拉祜族自治县, 行政区划码: 530828000
行 73: 西盟县 -> 全称: 西盟佤族自治县, 行政区划码: 530829000
行 74: 临沧市 -> 全称: 临沧市, 行政区划码: 530900000
行 75: 临翔区 -> 全称: 临翔区, 行政区划码: 530902000
行 76: 凤庆县 -> 全称: 凤庆县, 行政区划码: 530921000
行 77: 云县 -> 全称: 云县, 行政区划码: 530922000
行 78: 永德县 -> 全称: 永德县, 行政区划码: 530923000
行 79: 镇康县 -> 全称: 镇康县, 行政区划码: 530924000
行 80: 双江县 -> 全称: 双江拉祜族佤族布朗族傣族自治县, 行政区划码: 530925000
行 81: 耿马县 -> 全称: 耿马傣族佤族自治县, 行政区划码: 530926000
行 82: 沧源县 -> 全称: 沧源佤族自治县, 行政区划码: 530927000
行 83: 楚雄州 -> 全称: 楚雄彝族自治州, 行政区划码: 532300000
行 84: 楚雄市 -> 全称: 楚雄市, 行政区划码: 532301000
行 85: 禄丰市 -> 全称: 禄丰县, 行政区划码: 532331000
行 86: 双柏县 -> 全称: 双柏县, 行政区划码: 532322000
行 87: 牟定县 -> 全称: 牟定县, 行政区划码: 532323000
行 88: 南华县 -> 全称: 南华县, 行政区划码: 532324000
行 89: 姚安县 -> 全称: 姚安县, 行政区划码: 532325000
行 90: 大姚县 -> 全称: 大姚县, 行政区划码: 532326000
行 91: 永仁县 -> 全称: 永仁县, 行政区划码: 532327000
92: 元谋县 -> 全称: 元谋县, 行政区划码: 532328000
行 93: 武定县 -> 全称: 武定县, 行政区划码: 532329000
行 94: 红河州 -> 全称: 红河哈尼族彝族自治州, 行政区划码: 532500000
行 95: 个旧市 -> 全称: 个旧市, 行政区划码: 532501000
行 96: 开远市 -> 全称: 开远市, 行政区划码: 532502000
行 97: 蒙自市 -> 全称: 蒙自市, 行政区划码: 532503000
行 98: 弥勒市 -> 全称: 弥勒市, 行政区划码: 532504000
行 99: 屏边县 -> 全称: 屏边苗族自治县, 行政区划码: 532523000
行 100: 建水县 -> 全称: 建水县, 行政区划码: 532524000
行 101: 石屏县 -> 全称: 石屏县, 行政区划码: 532525000
行 102: 泸西县 -> 全称: 泸西县, 行政区划码: 532527000
行 103: 元阳县 -> 全称: 元阳县, 行政区划码: 532528000
行 104: 红河县 -> 全称: 红河县, 行政区划码: 532529000
行 105: 金平县 -> 全称: 金平苗族瑶族傣族自治县, 行政区划码: 532530000
行 106: 绿春县 -> 全称: 绿春县, 行政区划码: 532531000
行 107: 河口县 -> 全称: 河口瑶族自治县, 行政区划码: 532532000
行 108: 文山州 -> 全称: 文山壮族苗族自治州, 行政区划码: 532600000
行 109: 文山市 -> 全称: 文山市, 行政区划码: 532601000
行 110: 砚山县 -> 全称: 砚山县, 行政区划码: 532622000
行 111: 西畴县 -> 全称: 西畴县, 行政区划码: 532623000
行 112: 麻栗坡县 -> 全称: 麻栗坡县, 行政区划码: 532624000
行 113: 马关县 -> 全称: 马关县, 行政区划码: 532625000
行 114: 丘北县 -> 全称: 丘北县, 行政区划码: 532626000
行 115: 广南县 -> 全称: 广南县, 行政区划码: 532627000
行 116: 富宁县 -> 全称: 富宁县, 行政区划码: 532628000
行 117: 西双版纳州 -> 全称: 西双版纳傣族自治州, 行政区划码: 532800000
行 118: 景洪市 -> 全称: 景洪市, 行政区划码: 532801000
行 119: 勐海县 -> 全称: 勐海县, 行政区划码: 532822000
行 120: 勐腊县 -> 全称: 勐腊县, 行政区划码: 532823000
行 121: 大理州 -> 全称: 大理白族自治州, 行政区划码: 532900000
行 122: 大理市 -> 全称: 大理市, 行政区划码: 532901000
行 123: 漾濞县 -> 全称: 漾濞彝族自治县, 行政区划码: 532922000
行 124: 祥云县 -> 全称: 祥云县, 行政区划码: 532923000
行 125: 宾川县 -> 全称: 宾川县, 行政区划码: 532924000
行 126: 弥渡县 -> 全称: 弥渡县, 行政区划码: 532925000
行 127: 南涧县 -> 全称: 南涧彝族自治县, 行政区划码: 532926000
行 128: 巍山县 -> 全称: 巍山彝族回族自治县, 行政区划码: 532927000
行 129: 永平县 -> 全称: 永平县, 行政区划码: 532928000
行 130: 云龙县 -> 全称: 云龙县, 行政区划码: 532929000
行 131: 洱源县 -> 全称: 洱源县, 行政区划码: 532930000
行 132: 剑川县 -> 全称: 剑川县, 行政区划码: 532931000
行 133: 鹤庆县 -> 全称: 鹤庆县, 行政区划码: 532932000
行 134: 德宏州 -> 全称: 德宏傣族景颇族自治州, 行政区划码: 533100000
行 135: 瑞丽市 -> 全称: 瑞丽市, 行政区划码: 533102000
行 136: 芒市 -> 全称: 芒市, 行政区划码: 533103000
行 137: 梁河县 -> 全称: 梁河县, 行政区划码: 533122000
行 138: 盈江县 -> 全称: 盈江县, 行政区划码: 533123000
行 139: 陇川县 -> 全称: 陇川县, 行政区划码: 533124000
行 140: 怒江州 -> 全称: 怒江傈僳族自治州, 行政区划码: 533300000
行 141: 泸水市 -> 全称: 泸水市, 行政区划码: 533301000
行 142: 福贡县 -> 全称: 福贡县, 行政区划码: 533323000
行 143: 贡山县 -> 全称: 贡山独龙族怒族自治县, 行政区划码: 533324000
行 144: 兰坪县 -> 全称: 兰坪白族普米族自治县, 行政区划码: 533325000
行 145: 迪庆州 -> 全称: 迪庆藏族自治州, 行政区划码: 533400000
行 146: 香格里拉市 -> 全称: 香格里拉市, 行政区划码: 533401000
行 147: 德钦县 -> 全称: 德钦县, 行政区划码: 533422000
行 148: 维西县 -> 全称: 维西傈僳族自治县, 行政区划码: 533423000
C:\Users\Administrator\.conda\envs\yunnan\python.exe D:\dsWork\YunNanProject\Tools\Full_Original.py
开始执行全部数据处理工具 (T1-T8)
当前工作目录: D:\dsWork\YunNanProject\Tools
切换到工具目录: D:\dsWork\YunNanProject\Tools
==================================================
开始执行 T1_RenKou
==================================================
开始时间: 2025-09-10 14:23:24
=== 名称转换记录 ===
🔄 行 14: 石林县 → 石林彝族自治县
🔄 行 16: 禄劝县 → 禄劝彝族苗族自治县
🔄 行 17: 寻甸县 → 寻甸回族彝族自治县
🔄 行 32: 澄江县 → 澄江市
🔄 36: 峨山县 → 峨山彝族自治县
🔄 37: 新平县 → 新平彝族傣族自治县
🔄 38: 元江县 → 元江哈尼族彝族傣族自治县
🔄 59: 玉龙县 → 玉龙纳西族自治县
🔄 行 62: 宁蒗县 → 宁蒗彝族自治县
🔄 行 65: 宁洱县 → 宁洱哈尼族彝族自治县
🔄 行 66: 墨江县 → 墨江哈尼族自治县
🔄 行 67: 景东县 → 景东彝族自治县
🔄 行 68: 景谷县 → 景谷傣族彝族自治县
🔄 行 69: 镇沅县 → 镇沅彝族哈尼族拉祜族自治县
🔄 行 70: 江城县 → 江城哈尼族彝族自治县
🔄 行 71: 孟连县 → 孟连傣族拉祜族佤族自治县
🔄 行 72: 澜沧县 → 澜沧拉祜族自治县
🔄 行 73: 西盟县 → 西盟佤族自治县
🔄 80: 双江县 → 双江拉祜族佤族布朗族傣族自治县
🔄 81: 耿马县 → 耿马傣族佤族自治县
🔄 82: 沧源县 → 沧源佤族自治县
🔄 83: 楚雄州 → 楚雄彝族自治州
🔄 行 85: 禄丰市 → 禄丰县
🔄 行 94: 红河州 → 红河哈尼族彝族自治州
🔄 行 99: 屏边县 → 屏边苗族自治县
🔄 行 105: 平县 → 金平苗族瑶族傣族自治县
🔄 行 107: 河口县 → 河口瑶族自治县
🔄 行 108: 文山州 → 文山壮族苗族自治州
🔄 行 117: 西双版纳州 → 西双版纳傣族自治州
🔄 行 121: 大理州 → 大理白族自治州
🔄 行 123: 漾濞县 → 漾濞彝族自治县
🔄 行 127: 南涧县 → 南涧彝族自治县
🔄 行 128: 巍山县 → 巍山彝族回族自治县
🔄 行 134: 德宏州 → 德宏傣族景颇族自治州
🔄 行 140: 怒江州 → 怒江傈僳族自治州
🔄 行 143: 贡山县 → 贡山独龙族怒族自治县
🔄 行 144: 兰坪县 → 兰坪白族普米族自治县
🔄 行 145: 迪庆州 → 迪庆藏族自治州
🔄 行 148: 维西县 → 维西傈僳族自治县
📊 共检测到 39 项名称转换
✅ 所有区域名称均成功转换为全称
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\RenKou.json
📊 共处理 146 条地区数据
✅ T1_RenKou 执行成功
结束时间: 2025-09-10 14:23:26
耗时: 2.31 秒
==================================================
开始执行 T2_MaoRuXueLv
==================================================
开始时间: 2025-09-10 14:23:26
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\MaoRuXueLv.json
📊 共处理 146 条地区数据
=== 名称转换记录 ===
🔄 行 13: 晋宁县 → 晋宁区
🔄 行 23: 马龙县 → 马龙区
🔄 行 29: 沾益县 → 沾益区
🔄 行 33: 江川县 → 江川区
🔄 行 34: 澄江县 → 澄江市
🔄 行 44: 腾冲县 → 腾冲市
🔄 行 58: 水富县 → 水富市
🔄 行 143: 泸水县 → 泸水市
🔄 行 148: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
✅ 所有区域名称均成功转换为全称
✅ T2_MaoRuXueLv 执行成功
结束时间: 2025-09-10 14:23:26
耗时: 0.15 秒
==================================================
开始执行 T3_SchoolCount
==================================================
开始时间: 2025-09-10 14:23:26
✅ 学校数数据提取完成已保存至D:\dsWork\YunNanProject\Data\SchoolCount.json
📊 共处理 146 条地区数据
=== 名称转换记录 ===
🔄 12: 晋宁县 → 晋宁区
🔄 行 22: 马龙县 → 马龙区
🔄 行 28: 沾益县 → 沾益区
🔄 行 32: 江川县 → 江川区
🔄 行 33: 澄江县 → 澄江市
🔄 行 43: 腾冲县 → 腾冲市
🔄 行 57: 水富县 → 水富市
🔄 行 142: 泸水县 → 泸水市
🔄 行 147: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
❌ T3_SchoolCount 没有找到main函数
⚠️ T3_SchoolCount 执行失败,但继续执行后续工具...
==================================================
开始执行 T4_ClassCount
==================================================
开始时间: 2025-09-10 14:23:27
=== 名称转换记录 ===
🔄 行 12: 晋宁县 → 晋宁区
🔄 行 22: 马龙县 → 马龙区
🔄 行 28: 沾益县 → 沾益区
🔄 行 32: 江川县 → 江川区
🔄 行 33: 澄江县 → 澄江市
🔄 行 43: 腾冲县 → 腾冲市
🔄 行 57: 水富县 → 水富市
🔄 行 142: 泸水县 → 泸水市
🔄 行 147: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
✅ 所有区域名称均成功转换为全称
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\ClassCount.json
📊 共处理 146 条地区数据
✅ T4_ClassCount 执行成功
结束时间: 2025-09-10 14:23:27
耗时: 0.24 秒
==================================================
开始执行 T5_ZhaoShengCount
==================================================
开始时间: 2025-09-10 14:23:27
✅ 成功加载Excel文件D:\dsWork\YunNanProject\Doc\数据库-2015-2024-v2.xlsx
✅ 开始处理招生数数据共149行数据
🔄 已处理 10 条数据...
🔄 已处理 20 条数据...
🔄 已处理 30 条数据...
🔄 已处理 40 条数据...
🔄 已处理 50 条数据...
🔄 已处理 60 条数据...
🔄 已处理 70 条数据...
🔄 已处理 80 条数据...
🔄 已处理 90 条数据...
🔄 已处理 100 条数据...
🔄 已处理 110 条数据...
🔄 已处理 120 条数据...
🔄 已处理 130 条数据...
🔄 已处理 140 条数据...
=== 名称转换记录 ===
🔄 行 12: 晋宁县 → 晋宁区
🔄 行 22: 马龙县 → 马龙区
🔄 行 28: 沾益县 → 沾益区
🔄 行 32: 江川县 → 江川区
🔄 行 33: 澄江县 → 澄江市
🔄 行 43: 腾冲县 → 腾冲市
🔄 行 57: 水富县 → 水富市
🔄 行 142: 泸水县 → 泸水市
🔄 行 147: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
✅ 所有区域名称均成功转换为全称
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\ZhaoShengCount.json
📊 共处理 145 条地区数据
✅ T5_ZhaoShengCount 执行成功
结束时间: 2025-09-10 14:23:27
耗时: 0.26 秒
==================================================
开始执行 T6_ZaiXiaoShengCount
==================================================
开始时间: 2025-09-10 14:23:27
✅ 开始处理在校生数数据共149行数据
🔄 已处理10条数据...
🔄 已处理20条数据...
🔄 已处理30条数据...
🔄 已处理40条数据...
🔄 已处理50条数据...
🔄 已处理60条数据...
🔄 已处理70条数据...
🔄 已处理80条数据...
🔄 已处理90条数据...
🔄 已处理100条数据...
🔄 已处理110条数据...
🔄 已处理120条数据...
🔄 已处理130条数据...
🔄 已处理140条数据...
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\ZaiXiaoShengCount.json
📊 共处理 145 条地区数据
=== 名称转换记录 ===
🔄 行 5: 昆明市 → 昆明市
🔄 行 6: 五华区 → 五华区
🔄 行 7: 盘龙区 → 盘龙区
🔄 行 8: 官渡区 → 官渡区
🔄 行 9: 西山区 → 西山区
🔄 行 10: 东川区 → 东川区
🔄 行 11: 呈贡区 → 呈贡区
🔄 行 12: 晋宁县 → 晋宁区
🔄 行 12: 晋宁县 → 晋宁区
🔄 行 13: 富民县 → 富民县
🔄 行 14: 宜良县 → 宜良县
🔄 行 15: 石林彝族自治县 → 石林彝族自治县
🔄 行 16: 嵩明县 → 嵩明县
🔄 行 17: 禄劝彝族苗族自治县 → 禄劝彝族苗族自治县
🔄 行 18: 寻甸回族彝族自治县 → 寻甸回族彝族自治县
🔄 行 19: 安宁市 → 安宁市
🔄 行 20: 曲靖市 → 曲靖市
🔄 行 21: 麒麟区 → 麒麟区
🔄 行 22: 马龙县 → 马龙区
🔄 行 22: 马龙县 → 马龙区
🔄 行 23: 陆良县 → 陆良县
🔄 行 24: 师宗县 → 师宗县
🔄 行 25: 罗平县 → 罗平县
🔄 行 26: 富源县 → 富源县
🔄 行 27: 会泽县 → 会泽县
🔄 行 28: 沾益县 → 沾益区
🔄 行 28: 沾益县 → 沾益区
🔄 行 29: 宣威市 → 宣威市
🔄 行 30: 玉溪市 → 玉溪市
🔄 行 31: 红塔区 → 红塔区
🔄 行 32: 江川县 → 江川区
🔄 行 32: 江川县 → 江川区
🔄 行 33: 澄江县 → 澄江市
🔄 行 33: 澄江县 → 澄江市
🔄 行 34: 通海县 → 通海县
🔄 行 35: 华宁县 → 华宁县
🔄 行 36: 易门县 → 易门县
🔄 行 37: 峨山彝族自治县 → 峨山彝族自治县
🔄 行 38: 新平彝族傣族自治县 → 新平彝族傣族自治县
🔄 行 39: 元江哈尼族彝族傣族自治县 → 元江哈尼族彝族傣族自治县
🔄 行 40: 保山市 → 保山市
🔄 行 41: 隆阳区 → 隆阳区
🔄 行 42: 施甸县 → 施甸县
🔄 行 43: 腾冲县 → 腾冲市
🔄 行 43: 腾冲县 → 腾冲市
🔄 行 44: 龙陵县 → 龙陵县
🔄 行 45: 昌宁县 → 昌宁县
🔄 行 46: 昭通市 → 昭通市
🔄 行 47: 昭阳区 → 昭阳区
🔄 行 48: 鲁甸县 → 鲁甸县
🔄 行 49: 巧家县 → 巧家县
🔄 行 50: 盐津县 → 盐津县
🔄 行 51: 大关县 → 大关县
🔄 行 52: 永善县 → 永善县
🔄 行 53: 绥江县 → 绥江县
🔄 行 54: 镇雄县 → 镇雄县
🔄 行 55: 彝良县 → 彝良县
🔄 行 56: 威信县 → 威信县
🔄 行 57: 水富县 → 水富市
🔄 行 57: 水富县 → 水富市
🔄 行 58: 丽江市 → 丽江市
🔄 行 59: 古城区 → 古城区
🔄 行 60: 玉龙纳西族自治县 → 玉龙纳西族自治县
🔄 行 61: 永胜县 → 永胜县
🔄 行 62: 华坪县 → 华坪县
🔄 行 63: 宁蒗彝族自治县 → 宁蒗彝族自治县
🔄 行 64: 普洱市 → 普洱市
🔄 行 65: 思茅区 → 思茅区
🔄 行 66: 宁洱哈尼族彝族自治县 → 宁洱哈尼族彝族自治县
🔄 行 67: 墨江哈尼族自治县 → 墨江哈尼族自治县
🔄 行 68: 景东彝族自治县 → 景东彝族自治县
🔄 行 69: 景谷傣族彝族自治县 → 景谷傣族彝族自治县
🔄 行 70: 镇沅彝族哈尼族拉祜族自治县 → 镇沅彝族哈尼族拉祜族自治县
🔄 行 71: 江城哈尼族彝族自治县 → 江城哈尼族彝族自治县
🔄 行 72: 孟连傣族拉祜族佤族自治县 → 孟连傣族拉祜族佤族自治县
🔄 行 73: 澜沧拉祜族自治县 → 澜沧拉祜族自治县
🔄 行 74: 西盟佤族自治县 → 西盟佤族自治县
🔄 行 75: 临沧市 → 临沧市
🔄 行 76: 临翔区 → 临翔区
🔄 行 77: 凤庆县 → 凤庆县
🔄 行 78: 云县 → 云县
🔄 行 79: 永德县 → 永德县
🔄 行 80: 镇康县 → 镇康县
🔄 行 81: 双江拉祜族佤族布朗族傣族自治县 → 双江拉祜族佤族布朗族傣族自治县
🔄 行 82: 耿马傣族佤族自治县 → 耿马傣族佤族自治县
🔄 行 83: 沧源佤族自治县 → 沧源佤族自治县
🔄 行 84: 楚雄彝族自治州 → 楚雄彝族自治州
🔄 行 85: 楚雄市 → 楚雄市
🔄 行 86: 双柏县 → 双柏县
🔄 行 87: 牟定县 → 牟定县
🔄 行 88: 南华县 → 南华县
🔄 行 89: 姚安县 → 姚安县
🔄 行 90: 大姚县 → 大姚县
🔄 行 91: 永仁县 → 永仁县
🔄 行 92: 元谋县 → 元谋县
🔄 行 93: 武定县 → 武定县
🔄 行 94: 禄丰县 → 禄丰县
🔄 行 95: 红河哈尼族彝族自治州 → 红河哈尼族彝族自治州
🔄 行 96: 个旧市 → 个旧市
🔄 行 97: 开远市 → 开远市
🔄 行 98: 蒙自市 → 蒙自市
🔄 行 99: 弥勒市 → 弥勒市
🔄 行 100: 屏边苗族自治县 → 屏边苗族自治县
🔄 行 101: 建水县 → 建水县
🔄 行 102: 石屏县 → 石屏县
🔄 行 103: 泸西县 → 泸西县
🔄 行 104: 元阳县 → 元阳县
🔄 行 105: 红河县 → 红河县
🔄 行 106: 金平苗族瑶族傣族自治县 → 金平苗族瑶族傣族自治县
🔄 行 107: 绿春县 → 绿春县
🔄 行 108: 河口瑶族自治县 → 河口瑶族自治县
🔄 行 109: 文山壮族苗族自治州 → 文山壮族苗族自治州
🔄 行 110: 文山市 → 文山市
🔄 行 111: 砚山县 → 砚山县
🔄 行 112: 西畴县 → 西畴县
🔄 行 113: 麻栗坡县 → 麻栗坡县
🔄 行 114: 马关县 → 马关县
🔄 行 115: 丘北县 → 丘北县
🔄 行 116: 广南县 → 广南县
🔄 行 117: 富宁县 → 富宁县
🔄 行 118: 西双版纳傣族自治州 → 西双版纳傣族自治州
🔄 行 119: 景洪市 → 景洪市
🔄 行 120: 勐海县 → 勐海县
🔄 行 121: 勐腊县 → 勐腊县
🔄 行 122: 大理白族自治州 → 大理白族自治州
🔄 行 123: 大理市 → 大理市
🔄 行 124: 漾濞彝族自治县 → 漾濞彝族自治县
🔄 行 125: 祥云县 → 祥云县
🔄 行 126: 宾川县 → 宾川县
🔄 行 127: 弥渡县 → 弥渡县
🔄 行 128: 南涧彝族自治县 → 南涧彝族自治县
🔄 行 129: 巍山彝族回族自治县 → 巍山彝族回族自治县
🔄 行 130: 永平县 → 永平县
🔄 行 131: 云龙县 → 云龙县
🔄 行 132: 洱源县 → 洱源县
🔄 行 133: 剑川县 → 剑川县
🔄 行 134: 鹤庆县 → 鹤庆县
🔄 行 135: 德宏傣族景颇族自治州 → 德宏傣族景颇族自治州
🔄 行 136: 瑞丽市 → 瑞丽市
🔄 行 137: 芒市 → 芒市
🔄 行 138: 梁河县 → 梁河县
🔄 行 139: 盈江县 → 盈江县
🔄 行 140: 陇川县 → 陇川县
🔄 行 141: 怒江傈僳族自治州 → 怒江傈僳族自治州
🔄 行 142: 泸水县 → 泸水市
🔄 行 142: 泸水县 → 泸水市
🔄 行 143: 福贡县 → 福贡县
🔄 行 144: 贡山独龙族怒族自治县 → 贡山独龙族怒族自治县
🔄 行 145: 兰坪白族普米族自治县 → 兰坪白族普米族自治县
🔄 行 146: 迪庆藏族自治州 → 迪庆藏族自治州
🔄 行 147: 香格里拉县 → 香格里拉市
🔄 行 147: 香格里拉县 → 香格里拉市
🔄 行 148: 德钦县 → 德钦县
🔄 行 149: 维西傈僳族自治县 → 维西傈僳族自治县
📊 共检测到 154 项名称转换
✅ 所有区域名称均成功转换为全称
💾 数据已保存至 D:\dsWork\YunNanProject\Data\ZaiXiaoShengCount.json
✅ T6_ZaiXiaoShengCount 执行成功
结束时间: 2025-09-10 14:23:27
耗时: 0.25 秒
==================================================
开始执行 T7_TeacherCount
==================================================
开始时间: 2025-09-10 14:23:27
✅ 开始处理教师数据共150行数据
✅ 数据提取完成已保存至D:\dsWork\YunNanProject\Data\TeacherCount.json
📊 共处理 146 条地区数据
=== 名称转换记录 ===
🔄 行 13: 晋宁县 → 晋宁区
🔄 行 23: 马龙县 → 马龙区
🔄 行 29: 沾益县 → 沾益区
🔄 行 33: 江川县 → 江川区
🔄 行 34: 澄江县 → 澄江市
🔄 行 44: 腾冲县 → 腾冲市
🔄 行 58: 水富县 → 水富市
🔄 行 143: 泸水县 → 泸水市
🔄 行 148: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
✅ 所有区域名称均成功转换为全称
✅ T7_TeacherCount 执行成功
结束时间: 2025-09-10 14:23:28
耗时: 0.39 秒
==================================================
开始执行 T8_SchoolMianJi
==================================================
开始时间: 2025-09-10 14:23:28
✅ 学校面积数据提取完成已保存至D:\dsWork\YunNanProject\Data\SchoolArea.json
📊 共处理 146 条地区数据
=== 名称转换记录 ===
🔄 行 13: 晋宁县 → 晋宁区
🔄 行 23: 马龙县 → 马龙区
🔄 行 29: 沾益县 → 沾益区
🔄 行 33: 江川县 → 江川区
🔄 行 34: 澄江县 → 澄江市
🔄 行 44: 腾冲县 → 腾冲市
🔄 行 58: 水富县 → 水富市
🔄 行 143: 泸水县 → 泸水市
🔄 行 148: 香格里拉县 → 香格里拉市
📊 共检测到 9 项名称转换
❌ T8_SchoolMianJi 没有找到main函数
⚠️ T8_SchoolMianJi 执行失败,但继续执行后续工具...
==================================================
执行结果摘要
==================================================
T1_RenKou: ✅ 成功
T2_MaoRuXueLv: ✅ 成功
T3_SchoolCount: ❌ 失败
T4_ClassCount: ✅ 成功
T5_ZhaoShengCount: ✅ 成功
T6_ZaiXiaoShengCount: ✅ 成功
T7_TeacherCount: ✅ 成功
T8_SchoolMianJi: ❌ 失败
总计: 6/8 个工具执行成功
⚠️ 部分工具执行失败,请检查错误信息
进程已结束,退出代码为 0

103
Tools/Full_Original.py Normal file
View File

@@ -0,0 +1,103 @@
import os
import sys
import importlib
import traceback
from datetime import datetime
def run_tool(tool_name):
"""运行指定的工具脚本"""
print(f"\n{'='*50}")
print(f"开始执行 {tool_name}")
print(f"{'='*50}")
start_time = datetime.now()
print(f"开始时间: {start_time.strftime('%Y-%m-%d %H:%M:%S')}")
try:
# 导入工具模块
module = importlib.import_module(tool_name)
# 执行main函数
if hasattr(module, 'main'):
module.main()
print(f"\n{tool_name} 执行成功")
else:
print(f"\n{tool_name} 没有找到main函数")
return False
except Exception as e:
print(f"\n{tool_name} 执行失败: {str(e)}")
traceback.print_exc()
return False
end_time = datetime.now()
duration = end_time - start_time
print(f"结束时间: {end_time.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"耗时: {duration.total_seconds():.2f}")
return True
def main():
"""主函数:依次执行所有工具"""
print("开始执行全部数据处理工具 (T1-T8)")
print(f"当前工作目录: {os.getcwd()}")
# 确保在Tools目录下执行
tools_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(tools_dir)
print(f"切换到工具目录: {tools_dir}")
# 将Tools目录添加到Python路径
if tools_dir not in sys.path:
sys.path.insert(0, tools_dir)
# 将项目根目录添加到Python路径
project_root = os.path.dirname(tools_dir)
if project_root not in sys.path:
sys.path.insert(0, project_root)
# 定义要执行的工具列表
tools = [
"T1_RenKou",
"T2_MaoRuXueLv",
"T3_SchoolCount",
"T4_ClassCount",
"T5_ZhaoShengCount",
"T6_ZaiXiaoShengCount",
"T7_TeacherCount",
"T8_SchoolMianJi"
]
# 记录执行结果
results = {}
# 依次执行每个工具
for tool in tools:
success = run_tool(tool)
results[tool] = success
# 如果某个工具执行失败,可以选择是否继续执行后续工具
if not success:
print(f"\n⚠️ {tool} 执行失败,但继续执行后续工具...")
# 打印执行结果摘要
print("\n" + "="*50)
print("执行结果摘要")
print("="*50)
success_count = sum(1 for result in results.values() if result)
total_count = len(results)
for tool, success in results.items():
status = "✅ 成功" if success else "❌ 失败"
print(f"{tool}: {status}")
print(f"\n总计: {success_count}/{total_count} 个工具执行成功")
if success_count == total_count:
print("🎉 所有工具执行完成!")
else:
print("⚠️ 部分工具执行失败,请检查错误信息")
if __name__ == "__main__":
main()

View File

@@ -12,22 +12,26 @@ from Util.DataUtil import (
convert_area_name, save_to_json, load_workbook_sheet
)
# 创建数据保存目录
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'Data')
os.makedirs(DATA_DIR, exist_ok=True)
JSON_PATH = os.path.join(DATA_DIR, 'SchoolCount.json') # 学校数JSON路径
def main():
"""主函数:提取学校数量数据"""
# 创建数据保存目录
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'Data')
os.makedirs(DATA_DIR, exist_ok=True)
JSON_PATH = os.path.join(DATA_DIR, 'SchoolCount.json') # 学校数JSON路径
file_name = EXCEL_PATH
school_data = []
name_conversion_errors = [] # 记录转换失败的名称
conversion_records = [] # 定义转换记录变量
file_name = EXCEL_PATH
school_data = []
name_conversion_errors = [] # 记录转换失败的名称
conversion_records = [] # 定义转换记录变量
try:
workbook = None # 初始化workbook变量确保在finally块中可以访问
try:
# 加载工作簿并选择学校数Sheet
workbook = openpyxl.load_workbook(file_name, read_only=True)
if '学校数' not in workbook.sheetnames:
print("❌ 错误:未找到'学校数'Sheet")
exit(1)
return
sheet = workbook['学校数']
# 定义数据列范围与英文属性映射
@@ -193,8 +197,6 @@ try:
school_data.append(area_data)
workbook.close()
# 保存JSON
with open(JSON_PATH, 'w', encoding='utf-8') as f:
json.dump(school_data, f, ensure_ascii=False, indent=2)
@@ -214,7 +216,16 @@ try:
for error in name_conversion_errors:
print(f" - {error}")
except FileNotFoundError:
except FileNotFoundError:
print(f"🔴 错误Excel文件 '{file_name}' 不存在")
except Exception as e:
except Exception as e:
print(f"🔴 处理数据时发生错误:{str(e)}{traceback.format_exc()}") # 修复:添加闭合引号
finally:
try:
if workbook:
workbook.close()
except:
pass
if __name__ == "__main__":
main()

View File

@@ -6,22 +6,26 @@ import traceback
from Config.Config import EXCEL_PATH
from Util.AreaUtil import query_area_info
# 创建数据保存目录
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'Data')
os.makedirs(DATA_DIR, exist_ok=True)
JSON_PATH = os.path.join(DATA_DIR, 'SchoolArea.json') # 修改为学校面积的JSON路径
def main():
"""主函数:提取学校面积数据"""
# 创建数据保存目录
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'Data')
os.makedirs(DATA_DIR, exist_ok=True)
JSON_PATH = os.path.join(DATA_DIR, 'SchoolArea.json') # 修改为学校面积的JSON路径
file_name = EXCEL_PATH
area_data = []
name_conversion_errors = [] # 记录转换失败的名称
conversion_records = [] # 定义转换记录变量
file_name = EXCEL_PATH
area_data = []
name_conversion_errors = [] # 记录转换失败的名称
conversion_records = [] # 定义转换记录变量
try:
workbook = None # 初始化workbook变量确保在finally块中可以访问
try:
# 加载工作簿并选择学校面积、教学辅助房面积Sheet
workbook = openpyxl.load_workbook(file_name, data_only=True)
if '学校面积、教学辅助房面积' not in workbook.sheetnames:
print("❌ 错误:未找到'学校面积、教学辅助房面积'Sheet")
exit(1)
return
sheet = workbook['学校面积、教学辅助房面积']
# 定义数据列范围与英文属性映射
@@ -238,8 +242,6 @@ try:
# 将当前区域数据添加到列表
area_data.append(current_area_data)
workbook.close()
# 保存JSON文件
with open(JSON_PATH, 'w', encoding='utf-8') as f:
json.dump(area_data, f, ensure_ascii=False, indent=2)
@@ -259,13 +261,17 @@ try:
for error in name_conversion_errors:
print(f" - {error}")
except FileNotFoundError:
except FileNotFoundError:
print(f"🔴 错误Excel文件 '{file_name}' 不存在")
except Exception as e:
except Exception as e:
print(f"🔴 处理数据时发生错误:{str(e)}{traceback.format_exc()}")
finally:
finally:
try:
if workbook:
workbook.close()
except:
pass
if __name__ == "__main__":
main()

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.