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,字段列表中的未知列“索引”的主要内容,如果未能解决你的问题,请参考以下文章
OperationalError:(1054,“'字段列表'中的未知列'example.example_field'”)
OperationalError:(1054,“'字段列表'中的未知列'time_table.id'”)