【问题标题】:convert string to corresponding street number将字符串转换为对应的门牌号
【发布时间】:2023-03-30 15:06:01
【问题描述】:

我正在使用格式不一致的美国地址,例如街道号码中的 E.G:

358 SEVENTH AVENUE MANHATTAN 10001

我需要它是:

358 7th Ave, New York, NY 10001

使用像usaddress 这样的地址解析器,我可以分离出街道名称:

SEVENTH AVENUE

由此,我可以将问题处理为:

numbers_mapping = {'seventh':'7th','eight':'8th'}

street_name = 'SEVENTH AVENUE'
street_name = street_name.lower()

for key in numbers_mapping:
    if key in street_name.split():
        street_name = street_name.replace(key,numbers_mapping[key])

print street_name
7th avenue

我对这种方法有疑问:

1) 首先,我不知道有多少街道编号是有效的,并且我不想为似乎很常见的问题手动创建一个太大的字典。

2) 处理字符串总是很棘手,我可能会忽略这种方法的重要数量。

【问题讨论】:

    标签: python string geocoding street-address


    【解决方案1】:

    您可以使用ghewgill 的此代码 sn-p 将文本数字符号转换为数字符号。

    脚本的链接可以在here找到。

    在上面的代码sn-p中,我可以通过如下修改得到想要的结果:

    Small = {
    'zeroth': 0,
    'first': 1,
    'second': 2,
    'third': 3,
    'fourth': 4,
    'fifth': 5,
    'sixth': 6,
    'seventh': 7,
    'eighth': 8,
    'ninth': 9,
    'tenth': 10,
    'eleventh': 11,
    'twelfth': 12,
    'thirteenth': 13,
    'fourteenth': 14,
    'fifteenth': 15,
    'sixteenth': 16,
    'seventeenth': 17,
    'eighteenth': 18,
    'nineteenth': 19,
    'twenty': 20,
    'thirty': 30,
    'forty': 40,
    'fifty': 50,
    'sixty': 60,
    'seventy': 70,
    'eighty': 80,
    'ninety': 90
    

    }

    主要功能为:

    num = texttonum("string_evquivalent")
    if num == 1:
        print str(num) + 'st'
    elif num == 2:
        print str(num) + 'nd'
    else:
        print str(num) + 'th'
    

    希望这会有所帮助。谢谢!

    【讨论】:

      【解决方案2】:

      重新导入

      numbers_mapping = {'seventh':'7th','eight':'8th'}

      street_name = '第七大道'

      street_name = street_name.lower()

      用于输入 numbers_mapping 的键:

            if re.search(key,street_name.split(" ")[0],re.I):
      
                  street_name = street_name.replace(key,numbers_mapping[key])
      

      打印街道名称

      第七大道

      【讨论】:

      • 请试试这个,它可能会有所帮助
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多