比较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组合的记录,但是,如果原始文件具有相同组合的新更新记录,我希望使用原始文件内容。但是,原始文件中的所有列可能都不存在,所以我只想提取一组特定的记录,并使用表中现有的记录,以防记录为空/空。