Данные Из JSON file поместить в БД MySQL?

98
26 марта 2021, 01:00
JSON 
{
"address_id":"132",
"address":"Decebal",
"address2":"Traian",
"district":"1",
"city_id":456,
"postal_code":3443,
"phone":446649,
"location":"Moldova",
"last_update":12.12
}
CODE
import mysql.connector
import json
file = open('C:\\Users\\Администратор\\PycharmProjects\\Myproject\\js.json')
d = file.read()
b = json.loads(d)
db = mysql.connector.connect(user='',
password='',
host='',
port='',
database='')
cur = db.cursor()
# res = cur.fetchall()
query = """
insert into table_address(address_id,address,address2,district,city_id,postal_code,phone,location,last_update)
value(
"""
db.commit()
file.close()
db.close

А что делать дальше?

Answer 1

Проще всего будет воспользоваться модулем Pandas.

Гораздо эффективнее вставлять данные блоками - т.е. собрать все записи, которые мы хотим вставить в таблицу и вставить их одним куском, а не по одной строке.

Пример:

import pandas as pd                    #  pip install pandas
from sqlalchemy import create_engine   #  pip install sqlalchemy
# MySQL DB connection string
connection_string = 'mysql://user:password@server/dbname'
# создаем "SQL Alchemy connection" объект
engine = create_engine(connection_string)
# пример собранных в один блок (список) записей
data = [
{
"address_id":"132",
"address":"Decebal",
"address2":"Traian",
"district":"1",
"city_id":456,
"postal_code":3443,
"phone":446649,
"location":"Moldova",
"last_update":12.12
},
{
"address_id":"133",
"address":"Deceba2",
"address2":"Traian2",
"district":"2",
"city_id":457,
"postal_code":3444,
"phone":446649,
"location":"Moldova",
"last_update":13.12
}
]
# создаем Pandas DataFrame из записей
df = pd.DataFrame(data)
# записываем записи в таблицу
df.to_sql("table_address", engine , index=False, if_exists='append')

Так выглядят данные в виде Pandas DataFrame:

In [17]: df
Out[17]:
   address address2 address_id  city_id district  last_update location   phone  postal_code
0  Decebal   Traian        132      456        1        12.12  Moldova  446649         3443
1  Deceba2  Traian2        133      457        2        13.12  Moldova  446649         3444
READ ALSO
Как правильно вычислить дату в sql запросе?

Как правильно вычислить дату в sql запросе?

Есть задача, сделать выборку в таблице по возрасту - до ЛЕТДата рождения хранится в типе поля date

94
Вопрос про внешние ключи MySQL

Вопрос про внешние ключи MySQL

Как сделать автоматическую смену внешнего ключа в таблице при удалении родительской записи в другой таблице?

104
yii2 | Работа с константами

yii2 | Работа с константами

У меня есть код

117
Автоматическая очистка кеша на сайте

Автоматическая очистка кеша на сайте

У меня есть сайтИ я хочу реализовать на нём автоматическую очистку кеша

125