我有一个列表,打印时看起来像:
[(('1321', '01'), ('MessageXZY', '02'), ('DescriptionSKS', '03'), ('S7_6', '04'), ('S7_3', '05')), (('0A3B', '06'), ('MessageZYA', '07'), ('DescriptionKAM', '08')), (('9K44', '09'), ('MessageYAL', '10'), ('DescriptionAUS', '11'), ('S7_2', '12'))]
使用以下代码导出时:
with open('HTML to TSV.tsv','w',encoding='ISO-8859-1') as out:
tsv_out = csv.writer(out, delimiter="\t")
for row in grouped_tuples:
tsv_out.writerow(row)
我在text / TSV文件中得到以下内容:
('1321', '01') ('MessageXZY', '02') ('DescriptionSKS', '03') ('S7_6', '04') ('S7_3', '05')
('0A3B', '06') ('MessageZYA', '07') ('DescriptionKAM', '08')
('9K44', '09') ('MessageYAL', '10') ('DescriptionAUS', '11') ('S7_2', '12')
期望的输出:
1321, 01 MessageXZY, 02 DescriptionSKS, 03 S7_6, 04 S7_3, 05
0A3B, 06 MessageZYA, 07 DescriptionKAM, 08
9K44, 09 MessageYAL, 10 DescriptionAUS, 11 S7_2, 12
我不想从条目中搜索和删除'),因为我的实际字符串合法地包含该组合。我该怎么办才能使 csv.writer()不写这些字符?
答案 0 :(得分:1)
您可以在编写对之前对这些对进行分组:
import csv
grouped_tuples = [(('1321', '01'), ('MessageXZY', '02'), ('DescriptionSKS', '03'), ('S7_6', '04'), ('S7_3', '05')), (('0A3B', '06'), ('MessageZYA', '07'), ('DescriptionKAM', '08')), (('9K44', '09'), ('MessageYAL', '10'), ('DescriptionAUS', '11'), ('S7_2', '12'))]
with open('HTML to TSV.tsv','w', encoding='ISO-8859-1', newline='') as out:
tsv_out = csv.writer(out, delimiter="\t")
for row in grouped_tuples:
tsv_out.writerow(', '.join(pair) for pair in row)
给你:
1321, 01 MessageXZY, 02 DescriptionSKS, 03 S7_6, 04 S7_3, 05
0A3B, 06 MessageZYA, 07 DescriptionKAM, 08
9K44, 09 MessageYAL, 10 DescriptionAUS, 11 S7_2, 12
答案 1 :(得分:0)
取代
tsv_out.writerow(row)
给
tsv_out.writerow((row[0],row[1]))