Как поместить значение lat, lon в URL из csv-файла во время обратного декодирования

#python #xml #python-3.x

#python #xml #python-3.x

Вопрос:

У меня есть URL, похожий на этот:https://nominatim.openstreetmap.org/reverse ?format = xml amp; lat = 17.978733 amp; lon = 79.14550876 amp;zoom = 14 amp;addressdetails = 1 и я хочу изменить значения lat и lon в моем csv-файле.

 import csv 
import requests 
import xml.etree.ElementTree as ET 

def loadxml(): 

    # url of rss feed 
    url = 'https://nominatim.openstreetmap.org/reverse?format=xmlamp;lat=25.6amp;lon=78.0176amp;zoom=14amp;addressdetails=1'

    # creating HTTP response object from given url 
    resp = requests.get(url) 

    # saving the xml file 
    with open('ldn.xml', 'wb') as f: 
        f.write(resp.content) 

loadxml()
  

Эта команда предназначена для одного, lat lon но мне нужны мои CSV- lat и lon значения.

Ответ №1:

Новый URL-адрес может быть создан следующим образом:

 def get_url(lat,lon):
    return 'https://nominatim.openstreetmap.org/reverse?format=xmlamp;lat=' str(lat) 'amp;lon=' str(lon)'amp;zoom=14amp;addressdetails=1
  

Предположим, что ваш фрейм данных вызывается как df, а столбцы, содержащие широту и долготу, имеют имена lat и lon соответственно, следующим образом:

 for index, row in df.iterrows():

    url = get_url(row[lat],row[lon])

    resp = requests.get(url) 


    with open('ldn.xml', 'wb') as f: 
        f.write(resp.content) 
  

Надеюсь, это может вам помочь.