flatterer
miller
flatterer | miller | |
---|---|---|
14 | 63 | |
165 | 8,559 | |
- | - | |
6.6 | 9.0 | |
3 months ago | 10 days ago | |
Rust | Go | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
flatterer
-
How to convert a massive JSON into CSV
This tool was built for this purpose https://github.com/kindly/flatterer
-
Show HN: Flatterer Lite, A Rust WASM JSON to tabular converter, for nested data
I have been working on this Rust based JSON flattener (https://github.com/kindly/flatterer) to XLSX/CSV/SQLITE/PARQUET/POSTGRES for about 2 years. I finally made a WASM based one for CSV/XLSX which is really easy to play with. You can use it via a url (if the data has CORS headers), for example https://lite.flatterer.dev?url=https%3A%2F%2Fdummyjson.com%2....
The main difference with other converters/flatteners is that for one-to-many relationships (lists of objects in JSON) it produces a multi table output with keys to help join the tables together. Essentially produces a relational schema, along with some type information, of the JSON provided. For simple non-nested JSON it works too, but is a bit overkill.
Its all opensource and free, and I think that it will become more and more useful as JSON/Graphql APIs proliferate.
-
Create table from JSON
flatterer is the easiest option and will do this for you. It will also load the data into a sqlite or postgres database for you.
-
Robust Rust Library for Converting JSON Objects into CSV Rows
I have also written something similar but higher level flatterer which is python but is a binding to libflatterer. Its main difference is when there is a list of objects it treats it a one to many and creates a separate CSV file.
-
Flatten a massive json file
flatterer (github) is designed for this.
-
Simple GUI tool to query JSON or CSV databases [I have no coding skills]
This looks great and using duckdb as a backend us a great choice. For JSON I suggest using flatterer https://flatterer.opendata.coop/ . Which will convert most JSON into CSV/Parquet with very little technical knowledge.
-
Rust for Data Engineering
My project flatterer (used for flattening JSON into tables) also is mainly a python cli/libarary but is written in Rust for speed/memory efficiency and better concurrency.
-
JSON Processing
I have been working on a similar tool for the last while called flatterer (github). It has a similar aim and works with most kinds of JSON well (but not very well with top level objects like yours).
-
Stream processing - Nested JSON to Parquet
You could try Option B with flatterer https://flatterer.opendata.coop/ which purpose is to convert nested JSON into other formats without a schema upfront including parquet.
-
Turning JSON arrays into tables - Data flattening
flatterer docs (github)
miller
- Qsv: Efficient CSV CLI Toolkit
-
jq 1.7 Released
jq and miller[1] are essential parts of my toolbelt, right up there with awk and vim.
[1]: https://github.com/johnkerl/miller
-
Perl first commit: a “replacement” for Awk and sed
> This works really well if your problem can be solved in one or two liners.
My personal comfort threshold is around the 100-line mark. It's even possible to write maintainable shell scripts up to 500 lines, but it mostly depends on the problem you're trying to solve, and the discipline of the programmer to follow best practices (use sane defaults, ShellCheck, etc.).
> It go bad very quickly when, say, you have two CSV files and want to join them the sql-way.
In that case we're talking about structured data, and, yeah, Perl or Python would be easier to work with. That said, depending on the complexity of the CSV, you can still go a long way with plain Bash with IFS/read(1) or tr(1) to split CSV columns. This wouldn't be very robust, but there are tools that handle CSV specifically[1], which can be composed in a shell script just fine.
So it's always a balancing act of being productive quickly with a shell script, or reaching out for a programming language once the tools aren't a good fit, or maintenance becomes an issue.
[1]: https://miller.readthedocs.io/
-
Need help on cleaning this data!!
where mlr is from https://github.com/johnkerl/miller
-
Running weekly average
if this class of problems (i.e., csv/tsv data) is your main target you may find miller (https://github.com/johnkerl/miller) much more useful in the long run
-
GQL: A new SQL like query language for .git files written in Rust
That said, you may be interested in Miller (https://github.com/johnkerl/miller) which provides similar capabilities for CSV, JSON, and XML files. It doesn't use a SQL grammar, but that's just the proverbial lipstick on the thing. I'm not the author, but I have used it and I see some parallels in use cases at the very least.
- johnkerl/miller: Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON
-
Any cli utility to create ascii/org mode tables?
worth giving Miller a shot
-
I wrote this iCalendar (.ics) command-line utility to turn common calendar exports into more broadly compatible CSV files.
CSV utilities (still haven't pick a favorite one...): https://github.com/harelba/q https://github.com/BurntSushi/xsv https://github.com/wireservice/csvkit https://github.com/johnkerl/miller
- Miller: Like Awk, sed, cut, join, and sort for CSV, TSV, and tabular JSON
What are some alternatives?
json2csv - command line tool to convert json to csv
visidata - A terminal spreadsheet multitool for discovering and arranging data
libflatterer - Lib flatterer: A lib to make JSON flatterer
xsv - A fast CSV command line toolkit written in Rust.
flatten-tool - Tools for generating CSV and other flat versions of the structured data
jq - Command-line JSON processor [Moved to: https://github.com/jqlang/jq]
dasel - Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.
json-roller - Command line tool for converting json data structures to tables
csvtk - A cross-platform, efficient and practical CSV/TSV toolkit in Golang
adventofcode - https://adventofcode.com/
yq - yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor