我有一个python
代码,用于将json
转换为csv
文件。
当我转换时,我能够看到特定标题打印在我不需要的连续列中。
我的python代码:
import json, csv, datetime
f = open('cost_drilldown_data.json')
data = json.load(f)
s = csv.writer(open('cd23old.csv', 'w'))
s.writerow(["filter", "cost", "value", "cost", "subvalue", "cost", "time", "cost"])
for breakdown in data['breakdown']:
for time in data['time']:
for values in breakdown['values']:
if 'subvalues' in values:
for subvalues in values['subvalues']:
s.writerow([breakdown['filter'],
breakdown["cost"],
values['value'],
values['cost'],
subvalues["subvalue"],
subvalues["cost"],
time["time"][0]["time"],
time["cost"]]
)
else:
s.writerow([breakdown['filter'], "", "", values['value'], values['cost']])
我在csv中的实际输出:
filter,cost,value,cost,subvalue,cost,time,cost tags,5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-16,112.793 tags,5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-17,112.748 tags,5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-18,112.739 tags,5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-19,107.165 account,628455167342,1613.508,, account,85f05078-74e0-4015-aad3-84ff7e111023,1341.397,, project_id,813,2954.905,, provider,aws,1613.508,, provider,azure,1341.397,,
但我希望这样:
filter,cost,value,cost,subvalue,cost,time,cost tags, 5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-16,112.793 5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-17,112.748 5517.734,Name,462.62,BizOps-VM-20,227.576,2017-05-18,112.739 account, 628455167342,1613.508, 628455167342,1613.508, provider ,aws,1613.508,, aws,1613.508,
我只希望左边的过滤器标题只打印一次。 我怎么能这样做任何帮助赞赏!!!