INSERT Pandas Dataframe для SQL-сервера с использованием Python - Jupyter Notebook

1

До сих пор я запрашивал данные с моего SQL-сервера, используя в основном API, php файл и используя модуль requests в Python. Итак, вот мой код для этого:

# importing the requests library
import requests

# api-endpoint
URL = "https://******.co.in/******/queryRandom.php"

# location given here
token= '***************'

query= 'SELECT userId,createdAt,.... FROM xyz WHERE date >= CURDATE() - INTERVAL 60 DAY'

# defining a params dict for the parameters to be sent to the API
PARAMS = {'token':token, 'query':query}

# sending get request and saving the response as response object
r = requests.post(url = URL, data = PARAMS)
df=pd.DataFrame(r.json())
df.head()

Теперь, после того как я закончил свою работу, я создал тактику данных:

Sl.No.  date    nameofthepic    
1   26-08-2018  10-must-see-waterfalls-in-karnataka-8081714182d8    
2   26-08-2018  a-month-in-backpack-one-girl-one-goal-to-explore-the-himalayas-22813ee67e15 
3   26-08-2018  a-month-in-backpack-one-girl-one-goal-to-explore-the-himalayas-week-1-8d113ee673db  
4   26-08-2018  a-month-in-backpack-one-girl-one-goal-to-explore-the-himalayas-week-1-22b13ee67b87  
5   26-08-2018  backpacking-for-a-month-in-the-himalayas-week-1-30813ee674a6

Теперь, используя модуль похожих requests, есть ли способ написать что-то вроде этого: INSERT INTO table_name... и загрузить данные в таблицу SQL.

Основная проблема, которую я не могу понять:

i) Как загрузить значения столбца dataframe в таблицу за один раз?

ii) Если это невозможно с помощью модуля запросов, есть ли какой-либо другой способ, который я могу загрузить значения данных jupyter-notebook Pandas в таблицу SQL-сервера непосредственно из jupyter-notebook используя код Python?

Теги:
sql-server
pandas

1 ответ

0

Чтобы импортировать этот файл данных в таблицу MySQL:

# Import dataframe into MySQL
import sqlalchemy
database_username = 'ENTER USERNAME'
database_password = 'ENTER USERNAME PASSWORD'
database_ip       = 'ENTER DATABASE IP'
database_name     = 'ENTER DATABASE NAME'
database_connection = sqlalchemy.create_engine('mysql+mysqlconnector://{0}:{1}@{2}/{3}'.format(database_username, database_password, database_ip, database_name))
frame.to_sql(con=database_connection, name='table_name_for_df', if_exists='append')
  • 0
    но это заменит таблицу каждый раз, когда я запускаю правильный код ?! Я хочу, чтобы добавить данные каждый день
  • 0
    if_exists = 'append' добавит повседневные данные в базу данных mysql

Ещё вопросы

Сообщество Overcoder
Наверх
Меню