我从JSON中提取了以下信息并保存在变量上。变量及其信息如下:
tickets = ['DC-830', 'DC-463’, ' DC-631’]
duration = ['5h 3m', '1h 7m' , ‘3h 4m']
当我使用writerow()
时,如果JSON只有一个值,例如tickets = 'DC-830'
,我可以将信息保存在csv文件中。但是,如果它有2个或更多的值,则将信息写入同一行。
这是我得到的:
Ticket | Duration
['DC-830', 'DC-463’, ' DC-631’] | ['5h 3m', '1h 7m' , ‘3h 4m']
我需要这样写:
Ticket | Duration
DC-830 | 5h 3m
DC-463 | 1h 7m
DC-631 | 3h 4m
这是代码:
issues_test=s_json[['issues'][0]]
tickets,duration=[],[]
for item in issues_test:
tickets.append(item['key'])
duration.append(item['fields']['customfield_154'])
header = ['Ticket', 'Duration']
with open('P1_6.7.csv', 'a') as arc:
writer = csv.writer(arc)
writer.writerow(header)
writer.writerow([tickets, duration])
顾名思义,writerow()
只写一行。参数应该是一个字符串或数字列表。你给它一个二维列表,并期望它将它们配对,并将每一对写在单独的行中。
要编写多行,请使用writerows()
(注意名称中的复数形式)。您可以使用zip()
将两个列表中的元素配对。
writer.writerows(zip(tickets, duration))