You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python对加拿大邮编进行格式标准化

加拿大邮编标准化代码方案

以下提供两种常用场景的可直接运行代码:

场景1:Pandas处理表格列(适配Excel/CSV等结构化数据)

import pandas as pd

def standardize_ca_postal_code(code):
    # 仅保留字母数字,移除所有空格、特殊字符
    cleaned = ''.join([c for c in str(code).strip() if c.isalnum()]).upper()
    # 符合6位有效长度则格式化,否则保留原值
    if len(cleaned) == 6:
        return f"{cleaned[:3]} {cleaned[3:]}"
    return code

# 读取本地文件,替换为你的文件路径、邮编列名
df = pd.read_csv("你的数据文件路径.csv")
df['postal_code'] = df['postal_code'].apply(standardize_ca_postal_code)

# 导出处理后的数据
df.to_csv("标准化后邮编数据.csv", index=False)

场景2:纯Python处理列表类邮编数据

def standardize_ca_postal_code(code):
    cleaned = ''.join([c for c in str(code).strip() if c.isalnum()]).upper()
    return f"{cleaned[:3]} {cleaned[3:]}" if len(cleaned) == 6 else code

# 示例调用
raw_code_list = ["M1a 5w7", "m1a5W7", "A1A1A1", "B2B 2B2"]
standardized_list = [standardize_ca_postal_code(code) for code in raw_code_list]
# 输出结果:['M1A 5W7', 'M1A 5W7', 'A1A 1A1', 'B2B 2B2']

核心处理逻辑

  • 先清除所有非字母数字字符,同时去除首尾空白,统一解决带空格/无空格的格式差异
  • 全部字符转为大写,解决大小写混乱问题
  • 拆分前3位和后3位,中间插入空格生成标准格式
  • 内置长度校验,不符合6位有效邮编规则的内容会保留原值,避免异常报错

内容的提问来源于stack exchange,提问作者Carolina Medina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:54:02