Browse Source

振动分析增加对NAN的处理

wangjiaojiao 2 weeks ago
parent
commit
07b235c040
1 changed files with 14 additions and 1 deletions
  1. 14 1
      app/services/CMSAnalyst.py

+ 14 - 1
app/services/CMSAnalyst.py

@@ -148,6 +148,8 @@ class CMSAnalyst:
             "B3P": _3P_1X,
         }
         # result = json.dumps(result, ensure_ascii=False)
+        result = self.replace_nan(result)
+
         return result
 
         # frequency_domain_analysis 频谱分析
@@ -216,6 +218,7 @@ class CMSAnalyst:
                        {"Xaxis": fn_Gen * 5, "val": "5X"}, {"Xaxis": fn_Gen * 6, "val": "6X"}],
             "B3P": _3P_1X,
         }
+        result = self.replace_nan(result)       
         result = json.dumps(result, ensure_ascii=False)
         return result
 
@@ -283,7 +286,7 @@ class CMSAnalyst:
             "rpm_Gen": round(rpm_Gen, 2),  # 转速r/min
 
         }
-
+        result = self.replace_nan(result)
         result = json.dumps(result, ensure_ascii=False)
 
         return result
@@ -351,6 +354,7 @@ class CMSAnalyst:
             # 时间戳
             stats["time_stamp"] = str(time_stamp)
             all_stats.append(stats)
+        all_stats = [self.replace_nan(stats) for stats in all_stats]
         all_stats = json.dumps(all_stats, ensure_ascii=False)
         return all_stats
 
@@ -578,3 +582,12 @@ class CMSAnalyst:
             "FTF": round(FTF, 2),
 
         }
+    #检查返回结果是否有nan 若有,则替换成none
+    def replace_nan(self, obj):
+        if isinstance(obj, dict):
+            return {k: self.replace_nan(v) for k, v in obj.items()}
+        elif isinstance(obj, list):
+            return [self.replace_nan(item) for item in obj]
+        elif isinstance(obj, float) and math.isnan(obj):
+            return None
+        return obj