我正在执行一个ETL任务,其中我正在查询数据仓库中的表,以查看它是否包含通过连接操作数据库中的表而创建的数据帧(df)中的ID
DataFrame只有来自操作数据库中每个联接表的ID列。我已经为这些列中的每一列创建了一个变量,例如“billing_profiles_id”,如下所示:
billing_profiles_dim_id = df['billing_profiles_dim_id']
我正在尝试逐行迭代,以查看此处的ID是否位于数据仓库的“billing\u profiles\u dim”表中。如果ID不存在,我想使用ODB中匹配的ID行逐行填充DWH表:
for key in billing_profiles_dim_id:
sql = "SELECT * FROM billing_profiles_dim WHERE id = '"+str(key)+"'"
dwh_cursor.execute(sql)
result = dwh_cursor.fetchone()
if result == None:
sqlQuery = "SELECT * from billing_profile where id = '"+str(key)+"'"
sqlInsert = "INSERT INTO billing_profile_dim VALUES ('"+str(key)+"','"+billing_profile.name"')
op_cursor = op_connector.execute(sqlInsert)
billing_profile = op_cursor.fetchone()
至少到目前为止,我收到了以下错误:
SyntaxError: EOL while scanning string literal
此错误消息指向位于的barcket关闭
sqlInsert = "INSERT INTO billing_profile_dim VALUES ('"+str(key)+"','"+billing_profile.name"')
这是我目前无法解决的问题。我也知道这段代码可能会遇到另外一两个问题。有人能看看我如何解决当前的问题,并确保我走上了正确的道路吗
您缺少一个双勾号和一个+
但你真的应该转向准备好的陈述,比如
相关问题 更多 >
编程相关推荐