Moss 数据清洗插件
v1.0.0 · 数据处理 · 官方
简介
Moss 数据清洗插件 v1.0,AI 一键清理脏数据:
- dedupe 按列去重 trim 去空格/删空行 normalize 统一手机/邮箱 validate 字段校验
- 支持 CSV 和 JSON 对象数组,输出同格式或指定路径
- 纯本地处理,无需 pip,适合联系人、订单、导入清单等
典型流程:导入原始表 → trim 去脏 → normalize 统一格式 → validate 查问题 → dedupe 去重
操作说明
| action | 功能 |
|---|---|
dedupe | 按指定列去重,保留首条 |
trim | 单元格去首尾空格,可选删空行 |
normalize | 手机号/邮箱格式统一 |
validate | 校验必填、手机、邮箱、数字 |
validate 规则类型: required 必填 · phone 手机号 · email 邮箱 · number 数字
normalize 类型(fields): phone 11位手机号 · email 小写去空格
输入格式:
- CSV:标准逗号分隔,默认 UTF-8-BOM
- JSON:对象数组
[{"列1":"值",...}, ...]
安装
- 解压到
D:\moss-plugins\数据处理\数据清洗插件\ - 复制
python/到本目录 - 测试:
run.bat --action validate --filepath D:\test\contacts.csv --column 手机号 --rule phone
| 文件 | 说明 |
|---|---|
data_clean_plugin.py | 主程序 |
run.bat / run.sh | 启动脚本 |
数据清洗插件.md | 用户文档 |
无需 pip,标准库即可。
命令行
REM 按手机号去重
run.bat --action dedupe --filepath D:\data\contacts.csv --columns 手机号 --output D:\data\unique.csv
REM 去空格 + 删空行(不填 output 则自动命名 *_trimmed.csv)
run.bat --action trim --filepath D:\data\contacts.csv --remove_empty true
REM 统一手机号、邮箱格式
run.bat --action normalize --filepath D:\data\contacts.csv --columns 手机号,邮箱 --fields phone
REM 批量校验(rules 为 JSON)
run.bat --action validate --filepath D:\data\contacts.csv --rules "{\"姓名\":\"required\",\"手机号\":\"phone\",\"邮箱\":\"email\"}"
REM 单列校验
run.bat --action validate --filepath D:\data\contacts.csv --column 手机号 --rule phone
REM JSON 数组清洗
run.bat --action dedupe --filepath D:\data\users.json --columns id --output D:\data\users_clean.json
注册技能 data_clean
名称: data_clean
描述: 数据清洗 v1.0:dedupe/trim/normalize/validate。CSV或JSON数组去重、去空格删空行、统一手机号邮箱、校验必填/手机/邮箱/数字。输出清洗后文件。用户清洗表格、去重、规范联系方式、检查数据质量时使用。需提供 filepath。
脚本: D:\moss-plugins\数据处理\数据清洗插件\run.bat
参数 JSON:
{
"type": "object",
"properties": {
"action": {"type": "string", "enum": ["dedupe", "trim", "normalize", "validate"], "description": "操作类型"},
"filepath": {"type": "string", "description": "CSV或JSON文件路径,必填"},
"output": {"type": "string", "description": "输出路径,不填则自动加后缀"},
"columns": {"type": "string", "description": "列名逗号分隔,dedupe/normalize用"},
"fields": {"type": "string", "description": "normalize类型 phone/email"},
"remove_empty": {"type": "string", "description": "trim删空行 true/false"},
"rules": {"type": "string", "description": "validate规则JSON,如 {\"手机号\":\"phone\",\"邮箱\":\"email\"}"},
"column": {"type": "string", "description": "validate单列名"},
"rule": {"type": "string", "description": "validate单规则 required/phone/email/number"},
"delimiter": {"type": "string", "description": "CSV分隔符默认逗号"},
"encoding": {"type": "string", "description": "编码默认utf-8-sig"}
},
"required": ["action", "filepath"]
}
对话示例
| 场景 | 说法 |
|---|---|
| 去重 | 对 D:\contacts.csv 按手机号去重,保存 unique.csv |
| 去脏 | 清洗 contacts.csv,去掉空格和空行 |
| 统一格式 | 把 contacts.csv 手机号邮箱格式统一 |
| 校验 | 检查 contacts.csv 手机号邮箱是否合法 |
| 一条龙 | 先 trim 再 normalize 再 validate contacts.csv |
Moss AI 会根据描述选 action 并传 filepath、columns、rules 等参数。
常见错误
| 现象 | 处理 |
|---|---|
| 文件不存在 | 检查 filepath 完整路径 |
| JSON 需为对象数组 | validate/dedupe 的 json 须 [{...},{...}] |
| validate 无规则 | 传 rules JSON 或 column+rule |
| dedupe 未指定列 | 传 columns,默认取第一列 |
| 中文乱码 | 试 --encoding gbk |
| python folder missing | 复制 python 到插件目录 |
能力边界
| 支持 | 不支持 |
|---|---|
| CSV / JSON 数组 | 嵌套 JSON、xls |
| 四种种清洗/校验 | 复杂正则自定义规则 |
| 手机/邮箱/数字校验 | 身份证/银行卡专用校验 |
| 本地文件 | URL 在线拉取 |
与其他插件配合
- csv_tool:清洗前先 read 预览,清洗后 filter/stats 分析
- json_tool:JSON 转 CSV 后清洗,或清洗后再 to_csv
- excel_tool:CSV 清洗完转 xlsx 做报表
推荐顺序:trim → normalize → validate → dedupe
详见包内 数据清洗插件.md。