У меня есть JSON с 23 часами данных. (Будут другие JSON, которые обрабатываются таким же образом, следовательно, другие переменные в нижней части цикла for.) Я получаю эти данные через URL с широтой / долготой. С каждым lat / lng связано поле field id
, связанное с ним.
Я хотел бы записать validTime
и value
из каждого словаря в .csv
с моим идентификатором соответствующего поля. Я должен случайно получить 23 строки на field id
. Я получаю только 3-й час за каждый лат / лнг. Что нужно изменить в моем коде?
Введите:

Мой вывод должен выглядеть примерно так:

{
"series": [{
"validTime": "2019-05-13T02:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T03:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T04:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T05:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T06:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T07:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T08:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T09:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T10:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T11:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T12:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T13:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T14:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T15:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T16:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T17:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T18:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T19:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T20:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T21:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}, {
"validTime": "2019-05-13T22:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.01
}, {
"validTime": "2019-05-13T23:00:00Z",
"products": ["skywise-conus-1hr-precipitation-analysis"],
"value": 0.0
}],
"longitude": -95.175648,
"startTime": "2019-05-13T01:00:00Z",
"latitude": 44.797207,
"endTime": "2019-05-13T23:00:00Z",
"precipitation": 0.02,
"unit": {
"description": "inches",
"label": "\""
}
}
df = pd.read_csv(config.input_csv,usecols=['field id', 'lat', 'lon'], dtype=str)
for lat, lon, id_, startDate, endDate, t in zip(latval, lonval, idVal,
startDayValStr, endDayValStr, timeStr):
#### a bunch of code for daily weather values####
hrPrecip = 'https://insight.api.wdtinc.com/hourly-precipitation/' + str(lat)+'/' + str(lon) + time_param + '&unit=inches'
resp_pre_hr = se_.get(hrPrecip, auth=(config.dtn_app_id, config.dtn_key), timeout=30)
preValHrly = str(json.loads(resp_pre_hr.content)['series'][0]['value'])
preValHrlyL.append(preValHrly)
for preValHrlyLval, humidityHrlyLval, tempValHrlyLval in zip (preValHrlyL,humidityHrlyL, tempValHrlyL):
hrly_df = pd.DataFrame({'dateTime' :[dfTimeVal], 'field id': [id_], 'HourlyPrecipIn': [preValHrlyLval],'HourlyRH' : [humidityHrlyLval], 'HourlyTempF' : [tempValHrlyLval]})
hrly_df = hrly_df[['dateTime','field id','HourlyPrecipIn','HourlyRH', 'HourlyTempF']]
hrly_df.head()
hrlydfs = hrLylst.append(hrly_df)
pd.concat(hrLylst).to_csv(config.output_csv_hourly, encoding='utf-8', index=False)