Skip to main content

Generate SQL tables, load and extract data, based on JSON Table Schema descriptors.

Project description

# jsontableschema-sql-py

[![Travis](https://img.shields.io/travis/frictionlessdata/jsontableschema-sql-py/master.svg)](https://travis-ci.org/frictionlessdata/jsontableschema-sql-py)
[![Coveralls](http://img.shields.io/coveralls/frictionlessdata/jsontableschema-sql-py/master.svg)](https://coveralls.io/r/frictionlessdata/jsontableschema-sql-py?branch=master)
[![PyPi](https://img.shields.io/pypi/v/jsontableschema-sql.svg)](https://pypi-hypernode.com/pypi/jsontableschema-sql)
[![SemVer](https://img.shields.io/badge/versions-SemVer-brightgreen.svg)](http://semver.org/)
[![Gitter](https://img.shields.io/gitter/room/frictionlessdata/chat.svg)](https://gitter.im/frictionlessdata/chat)

Generate and load SQL tables based on JSON Table Schema descriptors.

> Version `v0.3` contains breaking changes:
- renamed `Storage.tables` to `Storage.buckets`
- changed `Storage.read` to read into memory
- added `Storage.iter` to yield row by row

## Getting Started

### Installation

```bash
pip install jsontableschema-sql
```

### Storage

Package implements [Tabular Storage](https://github.com/frictionlessdata/jsontableschema-py#storage) interface.

SQLAlchemy is used as sql wrapper. We can get storage this way:

```python
from sqlalchemy import create_engine
from jsontableschema_sql import Storage

engine = create_engine('sqlite:///:memory:', prefix='prefix')
storage = Storage(engine)
```

Then we could interact with storage:

```python
storage.buckets
storage.create('bucket', descriptor)
storage.delete('bucket')
storage.describe('bucket') # return descriptor
storage.iter('bucket') # yield rows
storage.read('bucket') # return rows
storage.write('bucket', rows)
```

### Mappings

```
schema.json -> SQL table schema
data.csv -> SQL talbe data
```

### Drivers

SQLAlchemy is used - [docs](http://www.sqlalchemy.org/).

## API Reference

### Snapshot

https://github.com/frictionlessdata/jsontableschema-py#snapshot

### Detailed

- [Docstrings](https://github.com/frictionlessdata/jsontableschema-py/tree/master/jsontableschema/storage.py)
- [Changelog](https://github.com/frictionlessdata/jsontableschema-sql-py/commits/master)

## Contributing

Please read the contribution guideline:

[How to Contribute](CONTRIBUTING.md)

Thanks!

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

jsontableschema-sql-0.5.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

jsontableschema_sql-0.5.0-py2.py3-none-any.whl (9.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jsontableschema-sql-0.5.0.tar.gz.

File metadata

File hashes

Hashes for jsontableschema-sql-0.5.0.tar.gz
Algorithm Hash digest
SHA256 a8758d4882017bfe898b91fefdd6896b6741213fb1afafb65644e2df67223806
MD5 38b679716d6ed60915d8828aa6b81a7b
BLAKE2b-256 cba6b29755f00aa36fe7f3286cc5461a03495b790e01763d9b1a1d4fba421d3c

See more details on using hashes here.

Provenance

File details

Details for the file jsontableschema_sql-0.5.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jsontableschema_sql-0.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b84b8fcfa7c59ff2f930ec506c140fa047eec667b3e44220ca6a862dca39f935
MD5 92256f9893faeb241b47fb6c6358b484
BLAKE2b-256 6608b1f3a40c735b5c8a9dc2a35e240ec7bdd1c0db955e40795c651b5918e5c5

See more details on using hashes here.

Provenance

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