writerow()使用来自JSON的列表



我从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))

最新更新