У меня есть тонны линий, как это:питона и строка извлечения
13480 AAA BBB CCC
Я хотел бы, чтобы преобразовать их с помощью питона в чем-то вроде:
SELECT XX FROM YY WHERE SOUNDEX("AAA BBB CCC")=FIELD1 AND CP="13480"
Зная, что «AAA BBB CCC
» является город , так что это может быть «AAA BBB CCC
», «AAA BBB
», «AAA-BBB-CCC
», «AAA
», «L'AAA
», «D'AAA BBB
», «D'AAA..
». Ну, конец строки сразу после номера - это название города.
Так большой файл containings строки вроде:
06260 Puget Théniers
06620 Bar sur Loup (Le)
06640 SAINT JEANNET
06640 Saint Jeannet
06660 AURON
06660 SAINT ETIENNE DE TINEE
06660 Saint Etienne de Tinée
06670 Levens
06710 Touët sur Var
06750 ANDON
06750 Thorenc
конца бы в чем-то вроде
SOUNDEX("Puget Théniers") AND CP="06260"
SOUNDEX("Bar sur Loup (Le)") AND CP="06620"
SOUNDEX("SAINT JEANNET") AND CP="06640"
SOUNDEX("Saint Jeannet") AND CP="06640"
SOUNDEX("AURON") AND CP="06660"
SOUNDEX("SAINT ETIENNE DE TINEE") AND CP="06660"
SOUNDEX("Saint Etienne de Tinée") AND CP="06660"
SOUNDEX("Levens") AND CP="06670"
SOUNDEX("Touët sur Var") AND CP="06710"
SOUNDEX("ANDON") AND CP="06750"
SOUNDEX("Thorenc") AND CP="06750"
Что является лучшим/чистым способом начать?
Я знаю, что могу сделать это в bash shellusing регулярных выражений, но я уже сделал большой парсер в python, который выводит строки, подобные этому. Поэтому я хотел бы закончить все это на Python, и поэтому я ищу чистый код & для некоторых объяснений, потому что у меня может быть много «фильтров», подобных этому в будущем.
[обновление] 13480
- это то, что всегда должно быть числами, а если нет, то следует возбуждать исключение.
Используйте параметры SQL, которые поддерживаются вашей библиотекой соединений SQL. Do * not * попытайтесь вставить значения в SQL-запросы, подобные этому, с форматированием строки. –
И это не вопрос. что вы пробовали и с какими проблемами вы столкнулись? Я бы ожидал, что пользователь с 4k-репутацией узнает, что мы можем помочь вам с практическими вопросами, а не с вопросами «дайте мне-код». –
Начиная с регулярного выражения, вы сможете легко адаптировать решение к различным входам. – eyquem