比较python中的原始文件记录和sql表记录-折叠两个字段

比较python中的原始文件记录和sql表记录-折叠两个字段,python,mysql,Python,Mysql,原始文件内容: $ cat test.txt col1|col2|col3|col4 a|b|1| 而需要更新的sql表有: select * from test_table; col1|col2|col3|col4 a|b|3|2 我需要将所有这些记录折叠在一起,需要的最终输出是: col1|col2|col3|col4 a|b|1|2 对于解析,我首先逐个读取原始文件记录 dbRows=[] ct = 0 with open('output.txt','w') as f: cs

原始文件内容:

$ cat test.txt
col1|col2|col3|col4
a|b|1|
而需要更新的sql表有:

select * from test_table;
col1|col2|col3|col4
a|b|3|2
我需要将所有这些记录折叠在一起,需要的最终输出是:

col1|col2|col3|col4
a|b|1|2
对于解析,我首先逐个读取原始文件记录

dbRows=[]
ct = 0
with open('output.txt','w') as f:
    csvwriter=csv.DictWrite(csvfile,delimiter='|',fieldnames)
    flnm = open('test.txt','r')
    csvreader=csv.DictReader(flnm,delimiter='|')
    for (rowNum,row) in enumerate(csvreader)
        col1 = row['col1']
        col2 = row['col2']
        col3 = row['col3']
        col4 = row['col4']
        cursor.execute("select col1,col2,col3,col4 from test_table where col1 = '%s' and col2 = '%s';"%(col1,col2))
        table_results = cursor.fecthall()
        table_col3 = table_results['col3']
        table_col4 = table_results['col4']

        if col3 == None:
            col3=table_col3

        if col4 == None:
            col4=table_col4

        dbRow={'col1':col1, 'col2':col2,'col3':col3,'col4':col4}
        csvwriter.writerow(dbRow)
        dbRows.append(dbRow)
        ct +=1

问题是:无法从表中获取记录。

您所说的“折叠”是什么意思?刚刚编辑的示例应该对此很清楚。您希望获取查询结果并使用类似csv的文件中的数据覆盖其中的单元格?并且您没有确切说明您的问题是sql表可能已经有col1和col2组合的记录,但是,如果原始文件具有相同组合的新更新记录,我希望使用原始文件内容。但是,原始文件中的所有列可能都不存在,所以我只想提取一组特定的记录,并使用表中现有的记录,以防记录为空/空。