【发布时间】:2016-06-19 22:45:35
【问题描述】:
所以我尝试使用 for 循环将 python 字典中的数据输入到 postgres 数据库中。代码如下
for value in dic:
domain_desc = value["domain_desc"]
commodity_desc = value["commodity_desc"]
statisticcat_desc = value["statisticcat_desc"]
agg_level_desc = value["agg_level_desc"]
country_name = value["country_name"]
state_name = value["state_name"]
county_name = value["county_name"]
unit_desc = value["unit_desc"]
value1 = value["Value"]
year_val = value["year"]
cur.execute("INSERT INTO fact_data (domain_desc,commodity_desc,statisticcat_desc,agg_level_desc,country_name,state_name,county_name,unit_desc,value,year) VALUES (domain_desc,commodity_desc,statisticcat_desc,agg_level_desc,country_name,state_name,county_name,unit_desc,value1,year_val)")
cur.commit()
print("Success!")
我不断收到错误
Traceback(最近一次调用最后一次): 文件“C:/Users/Backup/PycharmProjects/gro-app/harvest.py”,第 123 行,在 cur.execute("INSERT INTO fact_data (domain_desc,commodity_desc,statisticcat_desc,agg_level_desc,country_name,state_name,county_name,unit_desc,value,year) VALUES (domain_desc,commodity_desc,statisticcat_desc,agg_level_desc,country_name,state_name,county_name,unit_desc,value1,year_val )") psycopg2.ProgrammingError:列“domain_desc”不存在 第 1 行:...te_name,county_name,unit_desc,value,year) VALUES (domain_des... ^ 提示:“fact_data”表中有一个名为“domain_desc”的列,但不能从这部分查询中引用它。
我将数据库和表放在正确的位置。是什么导致了这个错误?我发现了一个类似的问题,但我不理解错误及其在不同的上下文中 有人帮我理解这一点
【问题讨论】:
-
在
VALUES之后,您必须再次提供实际值而不是列名。 -
这些是变量名
-
写入字符串时不会。阅读initd.org/psycopg/docs/usage.html#query-parameters 了解如何传递变量。
-
@KlausD。谢谢那有效..我没有正确传递变量
标签: python postgresql