写入csv文件时,只写入最后一行。
这是代码
item_keys = []
item_values = []
item_values2 = []#to build the list of lists
# added newline='' because in Python3 this is required to keep an extra row being added
with open(filename+'.csv','w',newline='') as outfile:
writer = csv.writer(outfile)
for key, value in jcr_rows.items():
if write_header:
item_keys.append(key)
item_values.append(value)
if write_header:
writer.writerow(item_keys)
write_header = False
print(item_values)
writer.writerow(item_values)
“print(item_values)”显示两个列表:
['', '1.92469', '3.394', '8.1', '98.24', '220.54971', '1.053',
'1932-6203', '3.7', '22,077', '2611', '2.806', 'PLoS One', '2.615',
'77.344', '0.429', 'PLOS ONE', '508,248']
['', '0.00155', 'Not Available', '8.4', '83.54', '0.17802',
'Not Available', '1024-2708','7.5', '79', '7567', '1.111', 'HONG KONG
MEDICAL JOURNAL', '1.062','40.584', '0.405', 'HONG KONG MED J', '1,228']
但只有第二个被写入。如果我将写入模式更改为“a”,则每行都会复制标题。
我尝试过使用writer而不是writerow,但是将内容拆分为字符,并且仍然仅用于一行。
我尝试过添加
for x in item_values:
writer.writerow(x)
这也将一行的字符分开了。
我已经尝试将列表构建到与编写器一起使用的列表列表中,但这些列表也不顺利。
我一直都是这样,现在我正在转动我的车轮。
任何帮助都将不胜感激。
更新: 预期的输出是一行标题,在
下打印了一系列相关数据JCR Abbreviated Title Citable Items ISSN etc
PLOS ONE 22,077 1932-6203
HONG KONG MED J 79 1024-2708
答案 0 :(得分:1)
好的,我把它整理出来了。我构建了一个列表item_values2.append(item_values)
,但我的声明中我将item_value
变量声明在循环中的错误位置。
然后,我能够使用writerows获得所需的输出。