如何在python

时间:2016-12-30 10:28:51

标签: python xml save

我正在尝试从网站上获取一系列天气报告,我有以下代码为我想要的XML创建所需的URL,保存返回的XML的最佳方式是什么?< / p>

with open('file.csv') as csvfile:
    towns_csv = csv.reader(csvfile, dialect='excel')
    for rows in towns_csv:
        x = float(rows[2])
        y = float(rows[1])
        url = ("http://api.met.no/weatherapi/locationforecast/1.9/?")
        lat = "lat="+format(y) 
        lon = "lon="+format(x)
        text = url + format(lat) + ";" + format(lon)

我一直用这段代码保存单个XMls;

response = requests.get(text)
xml_text=response.text
winds= bs4.BeautifulSoup(xml_text, "xml") 
f = open('test.xml', "w")
f.write(winds.prettify())
f.close()

CSV文件的第一列上有城市名称,我最好使用这些名称来保存每个XML文件。我确定另一个for循环会做,我只是不确定如何创建它。 任何帮助都会很棒,再次感谢堆叠。

1 个答案:

答案 0 :(得分:0)

你已经完成了大部分工作。只需使用rows[0]作为您的文件名。假设rows[0]是&#39; mumbai&#39;,那么rows[0]+'.xml'将为您提供'mumbai.xml'作为文件名。您可能想要检查城市名称是否包含需要删除的空格等。

with open('file.csv') as csvfile:
    towns_csv = csv.reader(csvfile, dialect='excel')
    for rows in towns_csv:
        x = float(rows[2])
        y = float(rows[1])
        url = ("http://api.met.no/weatherapi/locationforecast/1.9/?")
        lat = "lat="+format(y) 
        lon = "lon="+format(x)
        text = url + format(lat) + ";" + format(lon)
        response = requests.get(text)
        xml_text=response.text
        winds= bs4.BeautifulSoup(xml_text, "xml") 
        f = open(rows[0]+'.xml', "w")
        f.write(winds.prettify())
        f.close()