Skip to main content

A JSON query to SQL parser loosely based on the Loopback Query Language

Project description

# JTOS

JSON to SQL. Inspired by the Loopback Query Language, this is a standalone Python library to convert JSON objects to SQL.

## Schema

### Select
```json
{
"select": {
"tables": [],
"fields": []
}
}
```
### Joins
```json
{
"join": {
"type": "LEFT | RIGHT etc",
"conditions":{
"from": {
"table": "",
"field": ""
},
"to": {
"table": "",
"field": ""
}
}
}
}
```

### Where Conditions
```json
{
"where": [
{
"field": "",
"op": <op>,
"val": "",
"join": "o|a"
}
]
}
```

NOTE: An operator should only be included from the second index and it will be prepended to the built string

### Ordering
```json
{
"select":{
...,
"orderBy": {
"<field>": "ASC|DESC"
}
}
}
```
### Grouping
```json
{
"select":{
...,
"groupBy": [
"<field>"
]
}
}
```
### Paging
```json
{
"limit": 100,
"offset": 3
}
```
### Insert
```json
{
"insert": {
"table": "",
"values": {
"<field>": "<value>"
}
}
}
```


## Operations

* gt - >
* lt - <
* gte - >=
* lte - <=
* e - =
* ne - !=
* l - LIKE
* nl - NOT LIKE
* a - AND
* a - OR

---

## Notes

This does **no** authentication or validation,
it just blindly trusts the tests.

Do not run on production unless you are comfortable with it in your test environment first

## Contributing

Tests, please! But also any work on Upserts or Delete are also greatly appreciated

## TODO

* [X] Select
* [X] Where
* [X] Joins
* [X] Insert
* [ ] Upsert (this syntax is quite different so maybe needs a different parser)
* [X] Delete


## Examples

Examples are included in the `tests` directory

Project details


Download files

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

Files for JTOS, version 0.8.3
Filename, size File type Python version Upload date Hashes
Filename, size JTOS-0.8.3.tar.gz (4.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page