python - UndefinedColumn postgres Python
问题描述
我有一个下面给出的数据框。数据框和数据库中的列名相同。在将此数据插入数据库时,它给了我一个错误
---------------------------------------------------------------------------
UndefinedColumn Traceback (most recent call last)
<ipython-input-19-4d8cc1308822> in <module>
4 for i,row in df.iterrows():
5 sql = "INSERT INTO open_aq_location (" +cols + ") VALUES (" + "%s,"*(len(row)-1) + "%s)"
----> 6 cursor.execute(sql, row)
7
8 # # the connection is not autocommitted by default, so we must commit to save our changes
UndefinedColumn: column "sourcename" of relation "open_aq_location" does not exist
LINE 1: ...cation (id,country,city,cities,location,locations,sourceName...
^
|id |country | city | cities |location |locations |sourceName | sourceNames | sourceType | sourceTypes | coordinates | firstUpdated | lastUpdated | parameters | countsByMeasurement | count |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|AD-1 | AD | Escaldes-Engordany |[Escaldes-Engordany] |AD0942A |[AD0942A] |EEA Andorra | [EEA Andorra] | government | [government] | {'longitude': 1.53914, 'latitude': 42.50969} | 2017-09-13T21:00:00.000Z | 2020-12-18T12:00:00.000Z | [co, no2, o3, pm10, so2] | [{'parameter': 'co', 'count': 32426}, | 161833 |
|AD-2 | AD | Escaldes-Engordany |[Escaldes-Engordany] |AD0944A |[AD0944A] |EEA Andorra | [EEA Andorra] | government | [government] | {'longitude': 1.56525, 'latitude': 42.51694} | 2017-09-13T21:00:00.000Z | 2020-12-18T12:00:00.000Z | [o3] | [{'parameter': 'o3', 'count': 32455}] | 32455 |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码:
cols = ",".join([str(i) for i in df.columns.tolist()])
print(cols)
# Insert DataFrame recrds one by one.
for i,row in df.iterrows():
sql = "INSERT INTO col_name (" +cols + ") VALUES (" + "%s,"*(len(row)-1) + "%s)"
cursor.execute(sql, row)
# # the connection is not autocommitted by default, so we must commit to save our changes
conn.commit()
解决方案
推荐阅读
- python - 替换列表 Python 中的所有元素
- ios - Swift 和 Xcode:如何构建和运行 iOS 应用程序的 GitHub 存储库?
- spring-boot - Spring Data CRUDRepository ClasscastException
- prolog - 比较列表的子列表
- asp.net - 实体框架中的列名无效
- amazon-web-services - IAM 角色未分配实例配置文件
- amazon-web-services - 更新 Fargate TaskDefinition 后,触发任务的 CloudWatch 事件因任务定义不活动而失败
- android - 选择器不响应点击事件
- excel - Excel Power Query 中的参数整个范围或表格
- sql-server - 转置和创建变量