for now we decode dictionares inside the gempak python scripts

This commit is contained in:
Michael James 2018-10-30 11:11:21 -06:00
parent 9e97004e7d
commit 48d133a136
5 changed files with 39 additions and 1 deletions

View file

@ -29,9 +29,17 @@ class GridInfoRetriever:
req.setReftime(ct)
req.setFcstsec(self.forecast)
print(req)
resp = self.client.sendRequest(req)
# Take care of bytestring encodings in python3
for i, rec in enumerate(resp):
resp[i] = {
key.decode() if isinstance(key, bytes) else key:
val.decode() if isinstance(val, bytes) else val
for key, val in rec.items()
}
sortresp = sorted(sorted(resp, key=itemgetter("reftime"), reverse=True), key=itemgetter("fcstsec"))
grids = []

View file

@ -158,6 +158,13 @@ class GridNavRetriever:
req.setModelId(self.modelId)
resp = self.client.sendRequest(req)
for i, rec in enumerate(resp):
resp[i] = {
key.decode() if isinstance(key, bytes) else key:
val.decode() if isinstance(val, bytes) else val
for key, val in rec.items()
}
nav = []
for record in resp:

View file

@ -33,6 +33,14 @@ class StationDataRetriever:
req.setParmList(self.parmList)
req.setPartNumber(self.partNumber)
resp = self.client.sendRequest(req)
for i, rec in enumerate(resp):
resp[i] = {
key.decode() if isinstance(key, bytes) else key:
val.decode() if isinstance(val, bytes) else val
for key, val in rec.items()
}
return resp

View file

@ -20,6 +20,13 @@ class StationRetriever:
req.setPluginName(self.pluginName)
resp = self.client.sendRequest(req)
for i, rec in enumerate(resp):
resp[i] = {
key.decode() if isinstance(key, bytes) else key:
val.decode() if isinstance(val, bytes) else val
for key, val in rec.items()
}
stns = []
for item in resp:
stationstr = '{:<8}'.format(item.getStationId())

View file

@ -22,6 +22,14 @@ class TimeRetriever:
req.setPluginName(self.pluginName)
req.setTimeField(self.timeField)
resp = self.client.sendRequest(req)
for i, rec in enumerate(resp):
resp[i] = {
key.decode() if isinstance(key, bytes) else key:
val.decode() if isinstance(val, bytes) else val
for key, val in rec.items()
}
timelist = []
for item in resp.getTimes():
if isinstance(item, GregorianCalendar):