gRPC 必须有默认值导致问题(null 默认为 0)
gRPC 任何类型必须有一个默认值,这就导致如果是 int 类型无法区分是数值 0 还是默认值 0. 我的场景是在完成一个前端的 K 线分析,这就导致后端本来有些值返回的是 None(JSON 处理为 Null),引入 grpc 后变为 0,导致计算结果是错的 所以设定一个特殊值,来解析为 null,返回给前端
gRPC 任何类型必须有一个默认值,这就导致如果是 int 类型无法区分是数值 0 还是默认值 0. 我的场景是在完成一个前端的 K 线分析,这就导致后端本来有些值返回的是 None(JSON 处理为 Null),引入 grpc 后变为 0,导致计算结果是错的 所以设定一个特殊值,来解析为 null,返回给前端
我的需求是把 df 的 NaN 转 None,方便后续 json 转 null 看下面这段代码 # 计算 MA 指标 df["MA5"] = df["Close"].rolling(window=5).mean().round(2) df["MA10"] = df["Close"].rolling(window=10).mean().round(2) df["MA30"] = df["Close"].rolling(window=30).mean().round(2) df["MA60"] = df["Close"].rolling(window=60).mean().round(2) # 将非空数据保留,空数据用None替换 df = df.astype(object) df = df.where(df.notnull(), None) print(df["MA10"].head(10)) kline_data = df[ [ "time", "Open", "Close", "High", "Low", "Volume", "MA5", "MA10", "MA30", "MA60", ] ].to_dict(orient="records") 死活不行,输出的 MA 值仍然有 NaN 最后通过新建一个 df 解决 export_df = df.astype(object) export_df = export_df.where(export_df.notna(), None) # 调试:确认 NaN 已变成 None print(export_df["MA10"].head(10))