Python3.6+
Just need defined a json object, then you can save it in to a relational DB like MySQL PostgreSQL or other DB.
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.
- 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
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