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

如何将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:导入拆分后的数据

  1. 把拆分后的每行括号数据复制到Excel的A列
  2. 选中A列,点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器

步骤2:清洗数据

  1. 在Power Query中,添加自定义列,输入公式:Text.Remove([Column1], {"(", ")"),去掉括号
  2. 选中新生成的列,点击「拆分列」→ 「按分隔符」,选择逗号作为分隔符,拆分到多列
  3. 对拆分后的meta_key列和meta_value列,用「替换值」去掉首尾的单引号

步骤3:透视生成结构化表格

  1. 选中User_ID所在的列(第二列)、meta_key列(第三列)、meta_value列(第四列)
  2. 点击「转换」选项卡 → 「透视列」,在弹出的窗口中:
    • 值列选择meta_value对应的列
    • 聚合函数选择「不要聚合」
  3. 点击「关闭并上载」,将结果导出为CSV即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:50:33