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.1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

json2db-3.1.0-py2.py3-none-any.whl (14.3 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: json2db-3.1.0.tar.gz
  • Upload date:
  • Size: 13.2 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.1.0.tar.gz
Algorithm Hash digest
SHA256 0df648bc2e82fc5fa097052d76d7f73214eeb1c0839f9243408eca344520726f
MD5 ac96e2ce2336a08c2471baa6020ae03c
BLAKE2b-256 27e78570fc9258c3937234b1eb714fa737b8caa48bd3abd40a50da5edbb6b34d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: json2db-3.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.3 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.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c3eb53ef270a5f498e686d663f95252be86f8a8686d96435bee074a48175eff5
MD5 03532d41a766336a5856178427c7a004
BLAKE2b-256 e608aa3a8d122acb08e47ddd692d8876726f9ddbad23c332390aac0c28b8c95f

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