如何将WordPress API返回的州代码映射为对应文本值?
解决WordPress API州代码转完整文本的映射问题
最直接的方案是用字典映射处理代码与文本的对应关系,还能兼容大小写不一致的情况(比如WordPress返回小写m也能匹配到Madrid)。
步骤1:定义州代码映射字典
先把所有需要转换的代码和对应文本整理成字典:
state_code_mapping = { 'B': 'Barcelona', 'M': 'Madrid', # 后续新增州代码直接在这里添加键值对即可 }
步骤2:修改代码实现转换逻辑
把原代码中直接赋值Poblacion的部分替换成映射逻辑,同时处理大小写和未知代码的情况:
oClienteT["Direcciones"] = [] oClienteT["Telefono"] = oClienteW["billing"]["phone"] oClienteT["NombreFiscal"] = oClienteW["first_name"] + " " + oClienteW["last_name"] # 把返回的州代码统一转成大写,避免大小写不匹配问题 state_code = oClienteW["billing"]["state"].upper() # 用字典get方法获取对应文本,找不到则返回原代码(也可改成自定义默认值如"未知州") state_text = state_code_mapping.get(state_code, state_code) oClienteT["Direcciones"].append( { "Codigo" : oClienteW["id"], "Nombre" : oClienteW["billing"]["first_name"], "Apellidos" : oClienteW["billing"]["last_name"], "Direccion" : oClienteW["billing"]["address_1"], "Direccion2" : oClienteW["billing"]["address_2"], "Poblacion" : state_text, # 替换为映射后的完整文本 "Provincia" : oClienteW["billing"]["city"] })
补充说明
- 这种方式维护成本低,新增州的映射只需在字典里加一行键值对。
get方法的第二个参数是兜底逻辑,遇到未定义的代码时不会报错,而是返回原代码或你指定的默认值。
内容的提问来源于stack exchange,提问作者oraculo
相关产品推荐
相关产品推荐

