我试图通过将CSV文件读取到pandas数据框中来将记录插入到Netezza表中,但是一直出现关键错误。
KeyError: ('columnname', 'totalCount', 'distinctValuesCount')
我在这里错过了什么吗?
python 3.7.0 DB:Netezza 连接:Windows ODBC
我正在使用以下代码:
/* ----------------------------------------------------------------------- */
tmp_df2 :
|colSeq|batch_id|job_id|file_table_name|columnname|totalCount|distinctValuesCount|maxOccuranceValue|maxOccuranceValueCount|first|last|mean|std|min|25%|50%|75%|max
0|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|CALL_ID|4699016.0|139919.0|3768023237|394.0|||||||||
1|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|START_TIME|4699016.0|60906.0|2019-04-03 09:08:56|512.0|2019-04-02 23:48:28|2019-04-03 23:54:04|||||||
2|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|END_TIME|4699016.0|60728.0|2019-04-03 11:56:31|540.0|2019-04-02 23:54:51|2019-04-03 23:54:36|||||||
3|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|ANI|4699016.0|66695.0|0000000000 |80798.0|||||||||
4|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|EXIT_TYPE|4699016.0|3.0|networkxfer |2430564.0|||||||||
ABC_conn = pyodbc.connect('DRIVER={NetezzaSQL};SERVER=10.10.100.22;PORT=5480;DATABASE=ABC;UID=user;PWD=password;DSN=ODBC_1;Trusted_Connection=yes')
for index,row in tmp_df2.iterrows():
cur = ABC_conn.cursor()
cur.executemany("insert into ETL_DQ_INSTANCE(COLUMNNAME,TOTALCOUNT,DISTINCTVALUESCOUNT) values (?, ?, ?)",row["columnname","totalCount","distinctValuesCount"])
ABC_conn.commit()
cur.close()
ABC_conn.close()
/* ----------------------------------------------------------------------- */
答案 0 :(得分:0)
您似乎想通过这样做从熊猫Series
中提取某些列
row["columnname","totalCount","distinctValuesCount"]
但是那行不通。相反,您需要使用类似的
(row["columnname"], row["totalCount"], row["distinctValuesCount"])
将返回包含指定值的元组。