如何以逗号为分隔符拼接JSON中的数据库表列名键?
将JSON表结构中的列名转换为逗号分隔字符串
针对你提供的JSON数据库表结构,无需使用explode(该方法并不适配此场景),以下是几种简单的实现方式:
Python基础实现
先加载JSON数据,再遍历每个表提取列名并拼接:
import json # 加载JSON文件 with open('你的文件.json', 'r', encoding='utf-8') as f: data = json.load(f) # 处理每个表 result = {} for table_name, table_info in data['database'].items(): # 获取列名并以逗号分隔 columns = ', '.join(table_info['columns'].keys()) result[table_name] = columns # 输出结果 for table, cols in result.items(): print(f"{table}: {cols}")
输出结果:
table_1: col_t1_1, col_t1_2, col_t1_3, col_t1_4, col_t1_5 table_2: col_t2_1, col_t2_2, col_t2_3, col_t2_4
Pandas实现(如需DataFrame格式)
如果你习惯用Pandas处理数据,可按以下方式操作:
import pandas as pd import json # 加载JSON数据 with open('你的文件.json', 'r', encoding='utf-8') as f: data = json.load(f) # 构造数据表的列表 table_list = [] for table_name, details in data['database'].items(): table_list.append({ '表名': table_name, '加载类型': details['load_type'], '列名': ', '.join(details['columns'].keys()) }) # 转换为DataFrame df = pd.DataFrame(table_list) print(df)
输出DataFrame:
| 表名 | 加载类型 | 列名 |
|---|---|---|
| table_1 | Delta | col_t1_1, col_t1_2, col_t1_3, col_t1_4, col_t1_5 |
| table_2 | Delta | col_t2_1, col_t2_2, col_t2_3, col_t2_4 |
为什么explode不适合此场景
explode方法主要用于展开DataFrame中列表类型的列,而你的列信息是以字典形式存储(键为列名,值为类型),直接用explode无法实现列名拼接。提取字典的键并进行字符串拼接才是更直接的解决方案。
内容的提问来源于stack exchange,提问作者Julio
相关产品推荐
相关产品推荐

