Browse Source

catch more errors

chenhaiyang 4 years ago
parent
commit
787dbdff6b
3 changed files with 9 additions and 9 deletions
  1. 4 4
      app/services/platform.py
  2. 4 4
      app/services/transfer.py
  3. 1 1
      app/services/weather.py

+ 4 - 4
app/services/platform.py

@@ -79,7 +79,7 @@ class DataPlatformService(Service):
             if arrow.get(latest_time, TIME_FMT).shift(minutes=15) < arrow.get(self._now_time, TIME_FMT):
                 logger.info(f'delayed data - {object_id}: ({latest_time}, {latest_data})')
             value = round_half_up(latest_data, 2)
-        except (IndexError, KeyError):
+        except (IndexError, KeyError, TypeError):
             value = np.NAN
         except TypeError:
             value = -1.0
@@ -116,7 +116,7 @@ class DataPlatformService(Service):
                     }
                     for item in content
                 ]
-        except KeyError:
+        except (KeyError, TypeError, IndexError):
             result = []
 
         return result
@@ -151,7 +151,7 @@ class DataPlatformService(Service):
             if arrow.get(latest_time, TIME_FMT).shift(minutes=15) < arrow.get(end_time, TIME_FMT):
                 logger.info(f'delayed data - {object_id}: ({latest_time}, {latest_data})')
             value = round_half_up(latest_data, 2)
-        except (KeyError, IndexError):
+        except (KeyError, IndexError, TypeError):
             value = np.NAN
         except TypeError:
             value = -1.0
@@ -225,7 +225,7 @@ class DataPlatformService(Service):
 
         try:
             info = raw_info['Content'][0]['infos'][code]
-        except KeyError as e:
+        except (KeyError, IndexError, TypeError) as e:
             logger.error(f'id: {object_id}, details: {e}')
             info = None
 

+ 4 - 4
app/services/transfer.py

@@ -101,13 +101,13 @@ class SpaceInfoService(Service):
         try:
             pre_target_df = pd.DataFrame(raw_info.get('preTargets'))
             pre_target_df.set_index('time', inplace=True)
-        except KeyError:
+        except (KeyError, TypeError):
             pre_target_df = pd.DataFrame()
 
         try:
             normal_target_df = pd.DataFrame(raw_info.get('normalTargets'))
             normal_target_df.set_index('time', inplace=True)
-        except KeyError:
+        except (KeyError, TypeError):
             normal_target_df = pd.DataFrame()
 
         return {
@@ -227,7 +227,7 @@ class Duoduo(Service):
 
         try:
             result = raw_info.get('content')[-1]
-        except IndexError:
+        except (IndexError, TypeError):
             result = {}
 
         return result
@@ -295,7 +295,7 @@ class Duoduo(Service):
                 value = np.NAN
             else:
                 value = latest_data
-        except KeyError:
+        except (KeyError, TypeError, IndexError):
             value = np.NAN
 
         return value

+ 1 - 1
app/services/weather.py

@@ -32,7 +32,7 @@ class WeatherService(Service):
         raw_info = await self._post(url, params={'jsonString': json.dumps(params)}, headers=headers)
         try:
             result = raw_info.get('content')[-1]
-        except KeyError:
+        except (KeyError, TypeError, IndexError):
             result = {}
 
         return result