Я использую Google API для получения json данных о ближайших кофейнях. Для этого мне нужно закодировать широту и долготу в URL.
Требуемый URL: https://maps.googleapis.com/maps/api/place/textsearch/json?query=coffee&location=22.303940, 114.170372 & radius = 1000 & maxprice = 3 & key = myAPIKey
URL-адрес, который я получаю с использованием urlencode: https://maps.googleapis.com/maps/api/place/textsearch/json?query=coffee&location=22.303940%2C114.170372&radius=1000&maxprice=3&key=myAPIKEY
Как удалить «% 2 C» в URL? (Я показал свой код ниже)
serviceurl_placesearch = 'https://maps.googleapis.com/maps/api/place/textsearch/json?' parameters = dict() query = input('What are you searching for?') parameters['query'] = query parameters['location'] = "22.303940,114.170372" while True: radius = input('Enter radius of search in meters: ') try: radius = int(radius) parameters['radius'] = radius break except: print('Please enter number for radius') while True: maxprice = input('Enter the maximum price level you are looking for(0 to 4): ') try: maxprice = int(maxprice) parameters['maxprice'] = maxprice break except: print('Valid inputs are 0,1,2,3,4') parameters['key'] = API_key url = serviceurl_placesearch + urllib.parse.urlencode(parameters)
Я добавил этот фрагмент кода, чтобы заставить URL работать, однако я не думаю, что это долгосрочное решение. Я ищу более долгосрочное решение.
urlparts = url.split('%2C') url = ','.join(urlparts)
Вы можете добавить safe=","
safe=","
import urllib.parse parameters = {'location': "22.303940,114.170372"} urllib.parse.urlencode(parameters, safe=',')
Результат
location=22.303940,114.170372