Skip to main content

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


Download files

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

Source Distribution

json2db-3.2.1.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

json2db-3.2.1-py2.py3-none-any.whl (14.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file json2db-3.2.1.tar.gz.

File metadata

  • Download URL: json2db-3.2.1.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4

File hashes

Hashes for json2db-3.2.1.tar.gz
Algorithm Hash digest
SHA256 123d5dbe5768349a6ab215e44cba90595fee9b45bff9bdc99fee77684310085b
MD5 1666fc2b956af424033d5e59a70b96f8
BLAKE2b-256 bd6a266c006d98d13669d4b1e51e38ccab76f84ece49dc232d03eb1e57047cef

See more details on using hashes here.

File details

Details for the file json2db-3.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: json2db-3.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.4

File hashes

Hashes for json2db-3.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1d8a537de933ab848e5041a531f2e1f81189fd92a00ed40de2fe77ab1f817089
MD5 5ee68895fbd773a664afb5746c238fc6
BLAKE2b-256 702d0a69fff122a3f0c125188c5f8f74d94030da0cdd90417fff691c18585a06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page