TTokenySpace
返回 Skills 列表

数据格式转换(免费版)

支持CSV、JSON和YAML三种格式的基础互转,保持中文输出,适合单文件简单数据格式转换需求。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"data-format-converter-free"技能
技能信息:
- 名称: 数据格式转换(免费版)
- 标识: data-format-converter-free
- 描述: 支持CSV、JSON和YAML三种格式的基础互转,保持中文输出,适合单文件简单数据格式转换需求。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/data-format-converter-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

数据格式转换器(免费版)

输入格式

参数名类型必填说明
inputstring数据格式转换(免费版)处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL

概述

在CSV、JSON、YAML等常用数据格式间进行基础转换,支持中文输出与UTF-8编码处理.

核心能力

CSV转JSON

使用 csv.DictReader() 逐行读取为字典,通过 json.dumps(ensure_ascii=False, indent=2) 输出UTF-8中文JSON.

import csv, json
# ...
with open('data.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    rows = list(reader)
# ...
json_str = json.dumps(rows, ensure_ascii=False, indent=2)

JSON转CSV

使用 csv.DictWriter() 写入,需指定 fieldnamesencoding='utf-8-sig' 确保Excel兼容.

import csv, json
# ...
with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
# ...
fieldnames = list(data[0].keys())
with open('output.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

JSON转YAML

使用 yaml.safe_dump() 输出,default_flow_style=False 使用块样式,allow_unicode=True 保留中文.

import yaml, json
# ...
with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)
# ...
yaml_str = yaml.safe_dump(data, default_flow_style=False, allow_unicode=True, sort_keys=False)

YAML转JSON

使用 yaml.safe_load() 安全解析(不执行任意Python对象).

import yaml, json
# ...
with open('data.yaml', 'r', encoding='utf-8') as f:
    data = yaml.safe_load(f)
# ...
json_str = json.dumps(data, ensure_ascii=False, indent=2)

升级提示:XML与JSON互转(xmltodict.parse/unparse)、TOML与JSON互转(toml.load/dumps)、批量目录级转换、嵌套结构自动扁平化为付费版专享功能.

快速开始

  1. 确认运行环境满足依赖说明中的要求
  2. 在AI Agent对话中调用本技能,提供必要的输入参数
  3. 检查输出结果,根据需要进行后续处理

详细的输入输出格式请参考下方章节说明。

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux

依赖项

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent内置LLM提供

API Key 配置

需要配置对应API Key,详见上文环境配置章节

可用性分类

  • 分类: MD+EXEC()

API Key配置方式:

export API_KEY=${API_KEY:?请设置环境变量}

配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.

使用流程

  1. 识别源格式:根据文件扩展名(.csv/.json/.yaml)确定输入格式
  2. 选择目标格式:确认需要转换为何种格式(免费版支持CSV/JSON/YAML)
  3. 加载源数据:使用对应解析器读取文件(注意 encoding='utf-8'
  4. 执行转换:通过JSON作为中间格式进行转换
  5. 输出结果:写入目标文件,注意 ensure_ascii=False 保留中文

示例

示例1:CSV转JSON

输入 (CSV):
name,age,city
张三,30,北京
李四,25,上海
# ...
输出 (JSON):
[
  {"name": "张三", "age": "30", "city": "北京"},
  {"name": "李四", "age": "25", "city": "上海"}
]

示例2:JSON转YAML

输入 (JSON):
{"database": {"host": "localhost", "port": 5432}, "debug": true}
# ...
输出 (YAML):
database:
  host: localhost
  port: 5432
debug: true

错误处理

错误场景原因处理方式
json.JSONDecodeErrorJSON格式错误(尾随逗号、单引号)使用 json.loads() 严格解析,报告出错行号
CSV含嵌套数据无法扁平化CSV单元格内含JSON字符串免费版需手动扁平化,升级付费版获取自动处理
UnicodeDecodeError 编码错误文件非UTF-8编码尝试 encoding='gbk'encoding='latin-1' 读取
JSON转CSV时值含逗号或换行CSV字段需引号包裹csv.DictWriter 自动处理引号转义,确保 newline=''
YAML含特殊字符未加引号值含 : # & 等保留字符输出时用 default_style='"' 强制引号包裹

常见问题

Q1: 转换后中文变成 \u5f20\u4e09 怎么办?

A: 输出JSON时设置 ensure_ascii=False,如 json.dumps(data, ensure_ascii=False, indent=2)。YAML设置 allow_unicode=True.

Q2: JSON转CSV时,JSON值是数组或对象怎么办?

A: CSV是扁平格式,无法直接表示嵌套结构。免费版需手动将嵌套值扁平化(如 {"a": {"b": 1}}{"a.b": 1}),或转为JSON字符串存入单元格。付费版支持自动扁平化.

Q3: 如何转换XML或TOML格式?

A: XML与JSON互转、TOML与JSON互转为付费版专享功能。免费版支持CSV、JSON、YAML三种格式互转.

Q4: 如何批量转换多个文件?

A: 批量目录级转换为付费版专享功能。免费版需逐个文件手动执行转换.

Q5: YAML转JSON时遇到 !!python/object 标签怎么办?

A: 这是非安全YAML标签。务必使用 yaml.safe_load() 而非 yaml.safe_load()safe_load 会拒绝执行任意Python对象.

已知限制

  • 免费版不支持XML与TOML格式转换
  • 免费版不支持批量目录级转换
  • 免费版不支持嵌套结构自动扁平化
  • CSV是扁平格式,无法无损表示JSON的嵌套结构
  • 升级至付费版可解锁全部高级功能

评论

加载中…