You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效将SQL脚本列名转为带引号的Python列表?

高效从SQL提取列名生成Python列表的方法

哈哈,这个痛点我太懂了!每次手动给一堆列名加引号、凑成列表格式,简直是浪费时间。给你分享几个我日常用的高效方法,比Excel那套操作快多了:

方法1:Python快速脚本(适合偶尔处理)

如果已经把SQL语句复制到剪贴板了,直接写几行Python代码就能生成可用的列表:

# 把你的SQL语句粘贴到这里
sql = "SELECT a, b, c from MyTable"

# 提取SELECT和FROM之间的列部分
columns_section = sql.split("SELECT")[1].split("from")[0].strip()
# 分割列名、清理空格、添加引号
formatted_columns = [f"'{col.strip()}'" for col in columns_section.split(",")]
# 输出直接可粘贴的Python代码
print(f"MyColumns = [{', '.join(formatted_columns)}]")

运行后直接复制输出结果到你的代码里就行,完美适配简单的SQL语句。

方法2:正则表达式处理复杂SQL(带别名/函数的情况)

如果你的SQL列名带别名(比如user_id AS id)或者包含函数(比如DATE(create_time)),用正则能更精准提取原始列名:

import re

# 带复杂列的SQL示例
sql = "SELECT user_id AS id, name, DATE(create_time) AS create_date FROM users"

# 匹配SELECT和FROM之间的所有内容
match_result = re.search(r"SELECT\s*(.*?)\s*FROM", sql, re.IGNORECASE | re.DOTALL)
if match_result:
    # 分割每个列项,提取原始列名(去掉别名)
    column_items = [item.strip().split(" AS ")[0].strip() for item in match_result.group(1).split(",")]
    # 格式化为带引号的列表项
    formatted_columns = [f"'{col}'" for col in column_items]
    # 输出最终代码
    print(f"MyColumns = [{', '.join(formatted_columns)}]")

这个方法能处理绝大多数复杂场景,不用手动去清理别名或函数包裹的内容。

方法3:终端命令行一键处理(适合喜欢终端的同学)

如果你习惯用终端,直接用sed和tr这些工具就能完成,甚至不用写Python:

# 把你的SQL语句替换到echo后面,直接运行
echo "SELECT a, b, c from MyTable" | sed -n 's/SELECT\s*\(.*\)\s*FROM.*/\1/p' | tr ',' '\n' | sed 's/^\s*//;s/\s*$//' | sed "s/^/'/;s/$/',/" | tr -d '\n' | sed 's/,$//' | awk '{print "MyColumns = ["$0"]"}'

这条命令会自动完成:提取列部分→拆分每行一个列名→清理空格→添加引号和逗号→拼接成Python列表格式。

方法4:IDE多光标/正则替换(最快捷的实时操作)

用VS Code、PyCharm这类IDE的话,直接用内置功能就能搞定:

  • 多光标法:选中所有列名部分,按住Alt(Windows/Linux)或Option(Mac)点击每个列名的开头,输入单引号;再跳到每个列名的结尾,输入单引号和逗号,最后删掉最后一个逗号,包上[]就行。
  • 正则替换法:复制列名部分到编辑器,打开替换面板:
    • 查找框输入:([^,\s]+)(匹配非逗号非空格的列名)
    • 替换框输入:'$1',
    • 全部替换后,删掉最后一个逗号,再加上MyColumns = []包裹起来。

这些方法都能帮你省去Excel那套繁琐的操作,选个适合自己的就行!

内容的提问来源于stack exchange,提问作者Vlad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:33:12