Skip to main content

Convert CSV to automatically nested JSON.

Project description

# :knife: hone
Convert CSV to automatically nested JSON.

## Table of Contents
<!--ts-->
+ [Installation](#installation)
+ [Getting Started](#getting-started)
+ [Installation](#installation)
+ [Usage: Command Line](#usage-command-line)
+ [Usage: Python Module](#usage-python-module)
+ [Additional Configuration](#additional-configuration)
+ [Examples](#examples)
+ [License](#license)
<!--te-->

## Getting Started
Available as both a [Python module](#usage-python-module) and a [command line tool](#usage-command-line).

### Installation
```
pip install hone
```

### Usage: Command Line
To convert a CSV file located at `path/to/input.csv` to JSON (written to new file at `path/to/output.json`):

```
hone "path/to/input.csv" "path/to/output.json"
```

### Usage: Python Module
```
import hone

Hone = hone.Hone()
schema = Hone.get_schema('path/to/input.csv') # returns nested JSON schema for input.csv
result = Hone.convert('path/to/input.csv') # returns converted JSON as Python dictionary
```
### Additional Configuration
You can change the delimited characters that are used to generate the nested structure. By default, these are commas, underscores, and spaces. To change this, modify the [configuration file](hone/config.json).

## Examples

You can view all examples of conversions in the [examples](/examples) directory.
### CSV
| name | birth day | birth month | birth year | reference | reference name |
|-------|-----------|-------------|------------|-----------|----------------|
| Bob | 7 | May | 1985 | TRUE | Smith |
| Julia | 21 | January | 1997 | FALSE | N/A |
| Rick | 12 | June | 1996 | TRUE | Clara |
### Generated JSON
```
[
{
"birth": {
"day": "12",
"month": "June",
"year": "1996"
},
"name": "Rick",
"reference": "TRUE",
"reference name": "Clara"
},
{
"birth": {
"day": "12",
"month": "June",
"year": "1996"
},
"name": "Rick",
"reference": "TRUE",
"reference name": "Clara"
},
{
"birth": {
"day": "12",
"month": "June",
"year": "1996"
},
"name": "Rick",
"reference": "TRUE",
"reference name": "Clara"
}
]
```
# License
Hone is licensed under the [MIT license](LICENSE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hone-0.1.1.tar.gz (4.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page