Regex и CSV по ссылке Google в Windows - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок, так что извините, если это не очень хороший вопрос. я пытаюсь использовать регулярное выражение для извлечения координат из списка ссылок карты Google в CSV-файле (в столбце с именем «сайт», затем я создам CSV-файл с первым столбцом в «link_lo c .csv» и 2 столбец с новыми координатами long и lat.

ссылка в "link_lo c .csv" выглядит как

"https://maps.google.com/maps?q=31.99970589000%2C35.08542317&z=17&hl=en"

и я хочу извлечь 31.99970589000 и 35.08542317

Я использовал следующий код, но у меня была ошибка

Можете ли вы помочь

import re

out = open ("координаты). csv "," w ")

с открытым (" link_lo c .csv ") в качестве файла: для строки в файле: if column ==" site ":

        pattern = r"(\d+[.]\d+)*%2C(\d+[.]\d+)"
        result = re.search(pattern, row)
        out.write(result[1],result[2])

1 Ответ

0 голосов
/ 05 апреля 2020

Для разбора URL я рекомендую модуль urllib.parse вместо регулярных выражений (хотя вы можете сделать это и так). Вот пример:

from urllib.parse import urlparse, parse_qs

s = 'https://maps.google.com/maps?q=31.99970589000%2C35.08542317&z=17&hl=en'
parsed = urlparse(s)
queries = parse_qs(parsed.query)
coordinates = queries['q'][0].split(',')

print(parsed)
print(queries)
print(coordinates)

Вывод:

ParseResult(scheme='https', netloc='maps.google.com', path='/maps', params='', query='q=31.99970589000%2C35.08542317&z=17&hl=en', fragment='')
{'q': ['31.99970589000,35.08542317'], 'z': ['17'], 'hl': ['en']}
['31.99970589000', '35.08542317']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...