1054,字段列表中的未知列“索引”

Posted

技术标签:

【中文标题】1054,字段列表中的未知列“索引”【英文标题】:1054, unknown column 'index' in field list 【发布时间】:2020-08-05 14:40:08 【问题描述】:
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@localhostdb"
                       .format(user="admin",
                               pw="abcdef",
                               db="ghi"))
df_row.to_sql('df_row', con = engine, if_exists = 'append', chunksize = 1000)

当我运行上面的代码时,会出现以下消息: InternalError: (pymysql.err.InternalError) (1054, "'field list'中的未知列'index'")

【问题讨论】:

【参考方案1】:
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 会有所帮助。

【讨论】:

【参考方案2】:

我认为你的连接字符串是错误的使用这个:

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'

一切正常!

【讨论】:

对不起,我是新手。我已经运行了代码,但接下来会发生什么?这个config 变量如何影响将行插入创建的表的目标? 您的代码在我的环境中完美运行,唯一的错误是您的连接字符串格式错误(您错过了主机后的 /)

以上是关于1054,字段列表中的未知列“索引”的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 错误 #1054 -“字段列表”中的未知列

OperationalError:(1054,“'字段列表'中的未知列'example.example_field'”)

错误代码:1054。“字段列表”中的未知列

OperationalError:(1054,“'字段列表'中的未知列'time_table.id'”)

找不到列:1054“字段列表”中的未知列“0”-Laravel-我的代码中的任何地方都没有0列

错误代码:1054。“字段列表”中的未知列“部门”0.000 秒