1054, неизвестный столбец 'index' в списке полей - PullRequest
0 голосов
/ 22 апреля 2020
df_row.head()
    identifier  link    likes_count company
0   2292512316069378197 https://www.instagram.com/p/B_Qo84ihfiV 9608    Ralph Lauren
1   2292462538514040606 https://www.instagram.com/p/B_QdohlBQce 9462    Ralph Lauren
2   2292418655784545069 https://www.instagram.com/p/B_QTp8mhCst 22033   Ralph Lauren
3   2292372137723669561 https://www.instagram.com/p/B_QJFBSBaw5 14112   Ralph Lauren
4   2292334760619881771 https://www.instagram.com/p/B_QAlHJBzUr 5974    Ralph Lauren

# import the module
from sqlalchemy import create_engine

# create sqlalchemy engine
engine = create_engine("mysql+pymysql://{user}:{pw}@localhost{db}"
                       .format(user="admin",
                               pw="abcdef",
                               db="ghi"))
df_row.to_sql('df_row', con = engine, if_exists = 'append', chunksize = 1000)

Когда я запускаю приведенный выше код, появляется следующее сообщение: InternalError: (py mysql .err.InternalError) (1054, «Неизвестный столбец 'index' в 'списке полей'")

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Я думаю, что ваша строка подключения неверна, используйте это:

config = {
    'host': 'localhost',
    'user': 'newuser',
    'password': 'newpassword',
    'database': 'ghi'
}
db_user = config.get('user')
db_pwd = config.get('password')
db_host = config.get('host')
db_name = config.get('database')
connection_str = f'mysql+pymysql://{db_user}:{db_pwd}@{db_host}/{db_name}'

и все работает отлично!

0 голосов
/ 05 мая 2020
df_row.to_sql('df_row', con = engine, if_exists = 'append', chunksize = 1000)

изменить на

df_row.to_sql('df_row', con = engine, if_exists = 'append', chunksize = 1000, index= False)

индекс, который присутствует во фрейме данных. Поэтому по умолчанию to_sql пытается вставить в таблицу. Но столбца в таблице не существует, поэтому добавление index = false поможет.

...