如何将WordPress用户元数据的SQL格式数据转换为CSV?
解决WordPress用户元数据转结构化CSV的方案
方法一:Python脚本处理(适配复杂数据场景)
步骤1:拆分原始单行数据
把你手里的单行多括号数据,在VS Code/Notepad++里做正则替换:
- 查找内容:
)\( - 替换内容:
)\n( - 替换后每个
(...)组单独占一行,保存为user_meta.txt文件
步骤2:运行Python脚本
复制下面的代码保存为convert.py,和user_meta.txt放在同一文件夹,运行脚本即可生成目标CSV:
import csv import re # 存储用户元数据的字典,key为User_ID,value为元键值对 user_dict = {} # 收集所有出现过的元键,用于生成CSV表头 meta_keys = set() # 匹配每个括号组的正则,兼容带单引号的字段 pattern = re.compile(r'\((\d+),(\d+),\'([^\']+)\',\'([^\']+)\'\)') with open('user_meta.txt', 'r', encoding='utf-8') as f: for line in f: line = line.strip() if not line: continue match = pattern.match(line) if not match: continue user_id = match.group(2) key = match.group(3) value = match.group(4) # 更新用户数据 if user_id not in user_dict: user_dict[user_id] = {} user_dict[user_id][key] = value meta_keys.add(key) # 生成CSV表头 header = ['User_ID'] + sorted(meta_keys) # 写入CSV文件 with open('user_output.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.DictWriter(csv_file, fieldnames=header) writer.writeheader() for uid, data in user_dict.items(): row = {'User_ID': uid} row.update(data) writer.writerow(row)
方法二:Excel Power Query处理(无需编程)
步骤1:导入拆分后的数据
- 把拆分后的每行括号数据复制到Excel的A列
- 选中A列,点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器
步骤2:清洗数据
- 在Power Query中,添加自定义列,输入公式:
Text.Remove([Column1], {"(", ")"),去掉括号 - 选中新生成的列,点击「拆分列」→ 「按分隔符」,选择逗号作为分隔符,拆分到多列
- 对拆分后的meta_key列和meta_value列,用「替换值」去掉首尾的单引号
步骤3:透视生成结构化表格
- 选中User_ID所在的列(第二列)、meta_key列(第三列)、meta_value列(第四列)
- 点击「转换」选项卡 → 「透视列」,在弹出的窗口中:
- 值列选择meta_value对应的列
- 聚合函数选择「不要聚合」
- 点击「关闭并上载」,将结果导出为CSV即可
内容的提问来源于stack exchange,提问作者MelbourneMarsden
相关产品推荐
相关产品推荐

