首页 > 解决方案 > 如何使用Python从列表中插入多行

问题描述

我试图弄清楚如何将多行插入python,但出现错误:

TypeError: ('Params must be in a list, tuple, or Row', 'HY000')

for folderName in os.listdir(parentDirectory):
    for fileName in os.listdir(parentDirectory+'/'+folderName+'/'+'people'):
        if os.path.splitext(fileName)[-1].lower()== '.xml':
            filePath = parentDirectory+'/'+folderName+'/'+'people'+'/'+fileName
            print(filePath)
            tree = ET.parse(filePath)

            valuesToInsert.append("('" + fileName + "','" +tree.find('PNumber').text+ "','" +tree.find('PNumber2').text+ "')")

            numberOfProcessedFiles += 1
            if numberOfProcessedFiles%1000 == 0:
                print(*valuesToInsert, sep = "\n")
                cursor.executemany('''
                    insert into t02.m.PNumbers
                    values
                    (?,?,?)
                    ''',valuesToInsert)

                conn.commit()
                valuesToInsert.clear()

标签: pythonpyodbc

解决方案


不要附加字符串,只需附加一个元组:

valuesToInsert.append((fileName,tree.find('PNumber').text,tree.find('PNumber2').text))

推荐阅读