Python .replace 'st' с 'street', но оставьте название улицы таким же - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь изменить ул.на улицу, пр.на проспект и т. д., используя .replace () для адресов в одной ячейке.Например: WEST ST.должно быть УЛИЦЫ ЗАПАДА или ГОЛОВНОЙ ПУБЛИ RD.ДОЛЖНО БЫТЬ НА ГОРНОЙ ДОРОГЕ

Вот мой код:

if 'STREET' not in address and address.find('ST.'):
    address = address.replace('ST','STREET')

Результат дает мне ЗАПАДНУЮ УЛИЦУ.Как я могу оставить имя адреса без изменений без изменения имени адреса?Я пробовал .split (), но большинство ячеек имели разную длину списка, поэтому это действительно сбивало с толку.

Ответы [ 4 ]

0 голосов
/ 28 ноября 2018

Я отредактировал ваш код так:

address = "WEST ST."

if 'STREET' not in address and address.find('ST.'):
    address = address.replace('ST.','STREET')

print (address)

Вот результат:

WEST STREET

Вы должнызаменить "ST."не "ST"

0 голосов
/ 28 ноября 2018

Попробуйте, чем меньше кода, тем лучше.

address = "WEST ST."

if address.find('ST.'):
    address = address.replace(' ST.',' STREET')

print(address)
0 голосов
/ 28 ноября 2018

Попробуйте использовать Regex с границами.

Пример:

import re

s = """WEST ST
       MOUNT PEBBLE RD"""

toReplace = {"ST": 'STREET', "RD": "ROAD", "ave": "avenue"}
for k,v in toReplace.items():
    s = re.sub(r"\b" + k + r"\b", v, s)
print(s)

Выход:

WEST STREET
MOUNT PEBBLE ROAD
0 голосов
/ 28 ноября 2018

Попробуйте это:

if 'STREET' not in address and address.find('ST.'):
    address = address.replace(' ST.',' STREET')
...