python将字典写入excel_python-将具有numpy数组的字典写入.csv

您可以在单独的数据结构中收集标题和行,然后使用csv模块将所有内容写入Excel工作表.同样,数据字典需要转换为OrderedDict以保持顺序.

源代码

import numpy as np

import csv

from collections import OrderedDict

from itertools import chain

data = {}

testdata = np.array([1,2,3,4,5])

data = OrderedDict(data)

a = {'a': testdata, 'b': testdata, 'c': testdata}

b = {'a2': testdata, 'b2': testdata, 'c2': testdata}

c = {'a3': testdata, 'b3': testdata, 'c3': testdata}

#covert inner dict to OrderedDict

data['set1'] = OrderedDict(sorted(a.items(), key=lambda x:x[0]))

data['set2'] = OrderedDict(sorted(b.items(), key=lambda x:x[0]))

data['set3'] = OrderedDict(sorted(c.items(), key=lambda x:x[0]))

#collect second header

header2 = [data.get(k).keys() for k in data.keys()]

#get number of repetations for header1

header1_size = len(header2[0])

#get header1

header1 = sorted((data.keys())*header1_size)

#flatten list of list of header2

header2 = list(chain.from_iterable(header2))

#get rows from data dict

rows = zip(*[v2 for k1,v1 in data.items() for k2,v2 in v1.items() ])

#write header1,header2 and rows to excel /csv

with open('csvfile.csv','wb') as ofile:

wr = csv.writer(ofile, dialect='excel')

wr.writerow(header1)

wr.writerow(header2)

wr.writerows(rows)

csvfile

ZOqmw.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值