首页 > 解决方案 > 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()

标签: pythonpython-3.xpandaspostgresqldataframe

解决方案


推荐阅读