diff --git a/csst_dfs_api/common/utils.py b/csst_dfs_api/common/utils.py index 4f8b2b6645d6a3c799f2299ddcb888829b6bf222..3b3ee9fcef2c860024dcacd06c76e7dd157b9125 100644 --- a/csst_dfs_api/common/utils.py +++ b/csst_dfs_api/common/utils.py @@ -82,14 +82,14 @@ def fields_dtypes(rec): def tuple_fields_dtypes(rec: tuple): dtypes = [] - for _, f in rec: - if f.type == int: + for f in rec: + if type(f) == int: dtypes.append('i8') - elif f.type == float: + elif type(f) == float: dtypes.append('f8') - elif f.type == str: + elif type(f) == str: dtypes.append('S2') - elif f.type == list: + elif type(f) == list: dtypes.append('(12,)f8') else: dtypes.append('S2') @@ -101,12 +101,10 @@ def to_table(query_result): return Table() fields = query_result['columns'] dtypes = tuple_fields_dtypes(query_result.data[0]) - t = Table(names = fields, dtype = dtypes) - t.meta['comments'] = [str(query_result.data[0].__class__)] + t = Table(names = fields, dtype = dtypes, rows = query_result.data) + t.meta['columns'] = fields t.meta['total'] = query_result['totalCount'] - for rec in query_result.data: - t.add_row(rec) return t def object_list_to_table(query_result): diff --git a/tests/common/test_common_catalog.py b/tests/common/test_common_catalog.py index b3331b50f8ceb28b70e035527872e9a7d2ed14e9..17127badefc1ed8be24c9eab88a394e138ad49d2 100644 --- a/tests/common/test_common_catalog.py +++ b/tests/common/test_common_catalog.py @@ -16,6 +16,7 @@ class CommonCatalogTestCase(unittest.TestCase): ra=90, dec=24.5, radius=1, + columns = ('ref_epoch','ra','ra_error','dec','dec_error','parallax','parallax_error','pmra','pmra_error','pmdec','pmdec_error','phot_g_mean_mag','source_id'), catalog_name='gaia3', min_mag=-1, max_mag=-1, @@ -23,7 +24,8 @@ class CommonCatalogTestCase(unittest.TestCase): limit = 0 ) # print(result) - # dt = self.api.to_table(result) + dt = self.api.to_table(result) + dt.pprint() # df = dt.to_pandas() # print(df.head()) print('used:', time.time()-t)