1 个不稳定版本

0.1.0 2019年8月14日

#730科学

MIT 许可证

14KB
234 代码行

json2csv

预览版

简介

我喜欢使用JavaScript的json2csv库。这是一个遵循命令行数据科学哲学的出色工具。我想尝试用Rust重写,以提高性能并添加一些我遗漏的功能。

json2csv 0.1.0
Alex Wennerberg <alex@alexwennerberg.com>
Converts JSON into CSV

USAGE:
    json2csv [FLAGS] [OPTIONS] [--] [INPUT]

FLAGS:
    -F, --flatten    Flatten nested jsons and arrays
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -f, --fields <fields>...       Optionally specify fields to include
    -o, --output <output>          Output file. If not present, writes to stdout
    -U, --unwind-on <unwind-on>    Unwind an array into multiple keys, similar to mongo

ARGS:
    <INPUT>    Input file. If not present, reads from stdin

安装

此工具仍处于预览版。从源代码构建

git clone git://github.com/alexwennerberg/json2csv
cd json2csv
cargo build --release

请注意,如果您正在使用多个名为json2csv的工具,您可能需要卸载其中一个或添加别名,例如json2csv-rs

用法

对于简单、扁平的具有统一结构的JSON,只需运行json2csv 输入.json

如果您的JSON结构不统一,您可能需要先运行json2csv 输入.json --get-headers,这将列出所有标题。然后传递这些标题,如json2csv 输入.json --fields foo bar

如果您的JSON是嵌套的,您可能想要使用jq进行一些预处理。 --flatten 将将JSON中的所有嵌套数组展平,使其具有字段.nested_field或字段.nested_array.0等格式。结合使用--get-headers以获取所有嵌套值。

您可以使用--unwind-on选项在键上“展开”JSON。也就是说,将包含数组的记录拆分为包含该数组每个值的记录数组。

我没有包含JavaScript json2csv中存在的任何格式化选项。这是遵循“做一件事,做好一件事”的原则——这应该只是将JSON转换为CSV,对于任何类型的重新格式化或后处理,您可以将数据通过管道传输到BurntSushi的出色xsv库。

为任何功能请求提交pull请求!

依赖项

约5-7MB
约122K SLoC