mcpField
D
data-type-converter

data-type-converter

github.com/dkyazzentwatwa数据与数据库12461 次安装29 周前更新
代码仓库

关于 data-type-converter

data-type-converter 是用于转换 JSON、CSV、XML、YAML 和 TOML 文件的 Python 工具及命令行程序。它可处理嵌套数据,提供展平和格式选项,也支持批量转换及内存中的数据转换。

主要功能

  1. 01在五种数据格式间转换
  2. 02展平或保留嵌套结构
  3. 03处理数组并尽可能保留类型
  4. 04生成格式清晰的输出
  5. 05批量转换多个文件
  6. 06在内存中或以字符串转换数据

适用场景

  1. 01将 JSON 记录转换为 CSV
  2. 02展平嵌套数据以导出 CSV
  3. 03将 YAML 配置转换为 JSON
  4. 04批量转换目录中的文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill data-type-converter

安装后在 Claude Code 中输入/data-type-converter确认已加载。

附带文件scripts/data_converter.pyscripts/requirements.txt

详细介绍

数据类型转换器

在 JSON、CSV、XML、YAML 和 TOML 格式之间转换数据。支持嵌套结构、数组和复杂数据,并提供智能扁平化选项。

快速开始

from scripts.data_converter import DataTypeConverter

# JSON to CSV
converter = DataTypeConverter()
converter.convert("data.json", "data.csv")

# YAML to JSON
converter.convert("config.yaml", "config.json")

# With options
converter.convert("data.json", "data.csv", flatten=True)

功能

  • 5 种格式:JSON、CSV、XML、YAML、TOML
  • 嵌套数据:扁平化或保留嵌套结构
  • 数组:智能处理数组数据
  • 类型保留:尽可能保留数据类型
  • 美观输出:格式化且易于阅读的输出
  • 批量处理:转换多个文件

API 参考

基本转换
converter = DataTypeConverter()

# Auto-detect format from extension
converter.convert("input.json", "output.csv")
converter.convert("input.xml", "output.json")
converter.convert("input.yaml", "output.toml")
使用选项
# Flatten nested structures for CSV
converter.convert("nested.json", "flat.csv", flatten=True)

# Pretty print output
converter.convert("data.json", "pretty.json", indent=4)

# Specify root element for XML
converter.convert("data.json", "data.xml", root="records")
编程访问
# Load and convert in memory
data = converter.load("data.json")
converter.save(data, "data.yaml")

# String conversion
json_str = '{"name": "John", "age": 30}'
yaml_str = converter.convert_string(json_str, "json", "yaml")
批量处理
# Convert all JSON files to CSV
converter.batch_convert(
    input_dir="./json_files",
    output_dir="./csv_files",
    output_format="csv"
)

CLI 用法

# Basic conversion
python data_converter.py --input data.json --output data.csv

# With flattening
python data_converter.py --input nested.json --output flat.csv --flatten

# Batch convert
python data_converter.py --input-dir ./json --output-dir ./csv --format csv

# Pretty print
python data_converter.py --input data.json --output pretty.json --indent 4
CLI 参数
参数描述默认值
--input输入文件必填
--output输出文件必填
--input-dir批量处理的输入目录-
--output-dir输出目录-
--format输出格式根据扩展名确定
--flatten扁平化嵌套数据False
--indent缩进空格数2
--rootXML 根元素root

转换矩阵

来源/目标JSONCSVXMLYAMLTOML
JSON-是是是是
CSV是-是是是
XML是是-是是
YAML是是是-是
TOML是是是是-

示例

JSON 转 CSV(扁平数据)
converter = DataTypeConverter()

# Input: data.json
# [{"name": "John", "age": 30}, {"name": "Jane", "age": 25}]

converter.convert("data.json", "data.csv")

# Output: data.csv
# name,age
# John,30
# Jane,25
嵌套 JSON 转扁平 CSV
# Input: nested.json
# [{"user": {"name": "John", "email": "[email protected]"}, "orders": 5}]

converter.convert("nested.json", "flat.csv", flatten=True)

# Output: flat.csv
# user.name,user.email,orders
# John,[email protected],5
YAML 配置转 JSON
# Input: config.yaml
# database:
#   host: localhost
#   port: 5432
# debug: true

converter.convert("config.yaml", "config.json")

# Output: config.json
# {"database": {"host": "localhost", "port": 5432}, "debug": true}
XML 转 JSON
# Input: data.xml
# <users>
#   <user><name>John</name><age>30</age></user>
# </users>

converter.convert("data.xml", "data.json")

# Output: data.json
# {"users": {"user": {"name": "John", "age": "30"}}}

依赖项

pyyaml>=6.0
toml>=0.10.0
xmltodict>=0.13.0
pandas>=2.0.0

限制

  • CSV 不支持嵌套数据(需要先进行扁平化)
  • XML 属性处理较为基础
  • TOML 不支持 null 值
  • 嵌套层级过深可能会导致某些格式出现问题
  • 数组处理方式因格式而异

评论

支持 Markdown