From 0f2d363bb8be6de5650e2b5af909e43aac9dea28 Mon Sep 17 00:00:00 2001 From: shoulinwei Date: Sat, 8 Jun 2024 21:40:54 +0800 Subject: [PATCH] data to dict --- csst_dfs_api_cluster/common/utils.py | 38 +++++++++++++++++++++---- csst_dfs_api_cluster/facility/level0.py | 2 -- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/csst_dfs_api_cluster/common/utils.py b/csst_dfs_api_cluster/common/utils.py index 1c1047f..37f5d5a 100644 --- a/csst_dfs_api_cluster/common/utils.py +++ b/csst_dfs_api_cluster/common/utils.py @@ -121,7 +121,8 @@ def find_req(function, kwargs): else: columns.append(col) - return Result.ok_data(data = records).append("totalCount", totalCount)\ + data = Record.from_list(records, columns) + return Result.ok_data(data = data).append("totalCount", totalCount)\ .append("columns", columns) except grpc.RpcError as e: @@ -137,9 +138,18 @@ def get_req(function, kwargs): ) if resp.record: record = pickle.loads(resp.record) + cols = resp.columns + + columns = [] + for col in cols: + if col in columns: + columns.append("%s_1" % (col, )) + else: + columns.append(col) + if record: - data = Record.from_tuple(record, resp.columns) - return Result.ok_data(data=data).append("columns", resp.columns) + data = Record.from_tuple(record, columns) + return Result.ok_data(data=data) else: return Result.error(message=f"not found") else: @@ -173,7 +183,16 @@ def write_req(function, kwargs): if resp.success: if resp.record: record = pickle.loads(resp.record) - return Result.ok_data(data=record).append("columns", resp.columns) + cols = resp.columns + columns = [] + for col in cols: + if col in columns: + columns.append("%s_1" % (col, )) + else: + columns.append(col) + if record: + data = Record.from_tuple(record, columns) + return Result.ok_data(data=data) else: return Result.error(message = str(resp.error.detail)) except grpc.RpcError as e: @@ -197,7 +216,16 @@ def write_stream_req(function, byte_stream, kwargs): if resp.success: if resp.record: record = pickle.loads(resp.record) - return Result.ok_data(data=record).append("columns", resp.columns) + cols = resp.columns + columns = [] + for col in cols: + if col in columns: + columns.append("%s_1" % (col, )) + else: + columns.append(col) + if record: + data = Record.from_tuple(record, columns) + return Result.ok_data(data=data) else: return Result.error(message = str(resp.error.detail)) except grpc.RpcError as e: diff --git a/csst_dfs_api_cluster/facility/level0.py b/csst_dfs_api_cluster/facility/level0.py index f0c7c54..003594a 100644 --- a/csst_dfs_api_cluster/facility/level0.py +++ b/csst_dfs_api_cluster/facility/level0.py @@ -10,8 +10,6 @@ class Level0DataApi(object): @grpc_channel def find(self, **kwargs): result = find_req("Level0Servicer.Find", kwargs) - data = Record.from_list(result["data"], result["columns"]) - result["data"] = data return result @grpc_channel def get(self, **kwargs): -- GitLab