Сохранение данных из API - Python запросов - как получить доступ к предыдущему значению переменной в a для l oop в python? - PullRequest
0 голосов
/ 04 мая 2020

Я вызываю данные о погоде из API в мой python скрипт. У меня разные станции и разные параметры. Каждая из станций предоставляет данные для всех параметров.

По сути, я хочу сохранить ответ, полученный от API, в файл, используя для l oop. Я не хочу создавать много CSV-файлов для хранения ответа API.

Код:

headers = {'Accept-Encoding': 'gzip'}

keys = ["1", "11", "14", "10", "25"] # Клавиши параметров

ATS = ['52350', '62040', '62180', '62400', «64030», «64510», «65510», «66420», «71190», «71420», «71510», «72090», «72140», «72420», «74080», «74300», «74440» ',' 74460 ',' 74480 ',' 74490 ',' 75520 ',' 76160 ',' 76420 ',' 77210 ',' 78140 ',' 81040 ',' 81350 ',' 82110 ',' 82230 ', «83210», «83270», «83420», «84310», «84340», «84520», «85180», «85240», «85390», «85490», «86420», «92100», «92130 ',' 92410 ',' 93220 ',' 93520 ',' 94390 ',' 95130 ',' 95540 ',' 96040 ',' 96040 ',' 96190 ',' 96190 ',' 97120 ',' 97200 ', «97200», «97280», «97400», «97510», «97530», «98140», «98160», «98230», «98490», «104580», «105220», «105260», «105450 ',' 106570 ',' 107420 ',' 116430 ',' 140480 ',' 151380 ',' 161710 '] # Станции

for x in keys:

    for s in ATS:

    r11 = requests.get("https://opendata-download metobs.smhi.se/api/version/latest/parameter/"+x+"/station/"+s+"/period/corrected-archive/data.csv", headers=headers)

    #print(r11.status_code)

    y = r11.status_code

    if y == 404:

        print("Parameter", x, "Station", s)

        print("Station do not produce data for the specific parameter, requests points to a resource that does not exists")

        continue

    print("Status code", y, "Parameter", x, "Station", s)

    d = r11.text

    with open("test.csv", "w", encoding="utf-8") as f:

        f.write(d)

    df1 = pd.read_csv("test.csv", sep = ";", header=3, infer_datetime_format= True, encoding="ISO-8859–1" ,skiprows=6)

    df1

Вызов данных из API

Выход

Я сохраняю этот вывод в CSV-файл с помощью с открытым; Сохранение вывода в файл CSV

Теперь я хочу получить эти данные с разных станций (около 190 станций) для разных параметров (температура, скорость ветра, облучение) и сохранить их в CSV-файл, чтобы я мог использовать его в расчетах. Я не хочу создавать новый CSV-файл для данных с каждой станции и повторять код, поэтому я пытаюсь использовать для l oop.

Я использую для l oop, чтобы выполнить итерацию и получить данные для каждой станции и параметра и сохранить ответ в переменной, а затем распечатать его на экране, но, как и все oop, значение переменной обновляется каждый раз (изменяется с каждой итерацией, получает новые данные с другой станции).

Есть ли способ получить доступ к данным / ответу / значению переменной в предыдущей итерации для l oop?

Каков наилучший способ сохранить вывод / данные со всех станций без создания большого количества CSV-файлов?

для l oop для перебора станций и параметров и сохранения файл в формате csv

...