convert json to relational db
Project description
Json2DB
Python3.6+
Just need defined a json object, then you can save it in to a relational DB like MySQL PostgreSQL or other DB.
Reason To Write This FrameWork
Although NoSQL Database like MongoDB is popular, we still need SQL DataBase for analyze data, so this module is helping us store json to database, and help us build them in db.
Feature
- support mostly common database (
MySQL
,PostgreSQL
,MSSQL
,SQLite
),
just set database
like
JFactory(database='mysql')
See more in types
You can set str2col
control Database Column Type like Text
or VARCHAR
and other.You can see more
example in tests/test_comom_factory.py
- Support Different Style of database column
If you want your db column like some_thing
style
from json2db import JFactory, ColumnFormat
JFactory(column_fmt=ColumnFormat.UNDERLINE)
If you want your db column to be someThing
style, use ColumnFormat.CAMEL
Default we do nothing as the json format.
-
Support Add a TimeStamp for your first table
-
Support set table args for your each table init
-
Support add comment to your field
Just Use {"field": {":my comment": "real value"}}
, it can take the my comment
to this field
- Support Control the
max_depth
of your json table
PS: min is 0
which meaning it only one table for all json
- Support Restore your data to anther table
if your data like d = {"father_id": 1, "father_name": "father", "brother": {"brother_name": "jack"}, 'sons': [{"son_name": "aa"}}
, You can save it to a
new table like father - son
framework like {"father_id": 1, "brother_name": "jack", 'sons': [{"son_name": "aa", "father_name": "father"}]}
PS: you move brother
field to father
table, and move father
field to son
table,you can use
model.store(data=new_d, is_press=True)
See more sample please see tests
A Simple Example
For create_table ,store data and search data
from json2db import JFactory, ColumnFormat
d = {"aa": 1, "bb": 2, "brother": {"name": "jack", "namess": [{"other": "jack"}]}, 'sons': [{"son_name": "aa"}]}
factory = JFactory()
model = factory.from_json(data=d, root_name="data")
model.create_tables_in_db()
model.store(data=d)
model.search(search_args=[("aa", 1)], limit=2)
You can save your data to any sqlalchemy
support database like MySQL, PostgreSQL,Oracle,SQLite(Default stored if you not set db_url
) and so on.
The db_url
format please see more detail see https://docs.sqlalchemy.org/en/latest/core/engines.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for json2db-3.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3eb53ef270a5f498e686d663f95252be86f8a8686d96435bee074a48175eff5 |
|
MD5 | 03532d41a766336a5856178427c7a004 |
|
BLAKE2b-256 | e608aa3a8d122acb08e47ddd692d8876726f9ddbad23c332390aac0c28b8c95f |