【发布时间】:2019-07-16 14:00:14
【问题描述】:
我在 Python 中使用 Psycopg2 将数据插入 PostgreSQL 汇总表。我尝试插入的数据是从数百个 CSV 文件中获取的数据。我知道如何获取我需要的数据,并且我已经有代码可以做到这一点。问题是在某些 CSV 文件中有些值不存在。
例如: 文件 #1:
XBT:1
ABC:2
ABD:3
...
...
文件#2:
ABC:4
ABD:5
...
...
在这种情况下,我使用字典以便稍后将数据插入到表中。 所以首先我有一个创建字典的函数。在这种情况下,第一个字典将如下所示:
{'XBT':1,'ABC':2,'ABD':3}
第二个看起来像这样:
{'ABC':4,'ABD':5}
问题出在 INSERT INTO 命令上。我有一个将数据插入表的函数,如下所示:
INSERT INTO
summary(XBT,ABC,ABD)
VALUES (%s, %s, %s)
当循环尝试遍历第二个文件时,我会收到一个错误,因为字典中没有“XBT”值。 我正在寻找的解决方案是,如果字典缺少值,则 INSERT INTO 函数仍会在表中添加一个新行,这将没有缺失值。不可能为每个场景创建 INSERT INTO 函数,因为有超过 100 个变量。
【问题讨论】:
标签: python sql postgresql psycopg2