Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

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

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page