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. 015種類のデータ形式間で変換
  2. 02ネスト構造のフラット化または保持
  3. 03配列の処理と可能な範囲での型保持
  4. 04読みやすい形式で出力
  5. 05複数ファイルの一括変換
  6. 06メモリ上または文字列でのデータ変換

活用シーン

  1. 01JSONレコードをCSVに変換
  2. 02ネストしたデータを平坦化してCSV出力
  3. 03YAML設定を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 値に対応していません
  • ネストが非常に深い場合、一部の形式で問題が発生することがあります
  • 配列の処理方法は形式によって異なります

コメント