我有一个包含三个键的字典,但每个键都有多个值。
mydictionary = {'wave': [14.26661, 14.3583, 14.45, 14.54169, 14.63338, etc], 'flux': [2.092778, 1.188152, 2.130176, 3.201674, 2.043295, etc], 'unc': [0.7566527, 0.7157381, 0.7030209, 0.6992941, etc]}
我想以下列格式将字典保存到csv。
wave,flux,unc
14.2666,2.0927,0.756
14.35,1.18,0.715
每个键都是一个列标题,每个键都有自己的行。最终的csv应该有3列和116/117行。
这是我得到的最接近的,但是csv只写了第一列,并且正在跳过行。
with open(n + '_sp.csv', 'w') as f:
w = csv.writer(f)
w.writerow(['wavelength','flux', 'unc'])
for key, values in mydictionary.items():
for value in values:
w.writerow([value])
答案 0 :(得分:1)
您可以将所有值列表收集到一个列表中然后进行转置,这样行会逐行堆叠,与标题对齐:
with open(n + '_sp.csv', 'w') as f:
w = csv.writer(f)
header = ['wavelength', 'flux', 'unc']
w.writerow(header)
rows = zip(*[mydictionary[h] for h in header])
w.writerows(rows)