Python 使用itertool 实现nested array
我正在把csv 文件转换成json格式。目前我只实现了两个array,第三个array加在第二个个。代码如下
import csv
import json
from itertools import groupby
with open('ledgers.csv', 'r') as csv_ledger:
r = csv.DictReader(csv_ledger)
data = [dict(d) for d in r]
groups = []
coa_data = []
for k, g in groupby(data, lambda r: (r['ref_num'], r['date'])):
groups.append({
"date": k[1],
"ref_num": k[0],
"info": [{k: v for k, v in d.items() if k in ['debit', 'credit','description']} for d in list(g)]
})
目前结果
{
"date": "2016-07-01",
"ref_num": "D16-07-1002",
"items": [
{
"description": "GRAAAB APP SUBCRIPTION FEE",
"debit": "805.00",
"info": ""
},
]
}
想要的结果
{
"date": "2016-07-01",
"ref_num": "D16-07-1002",
"items": [
{
"description": "GRAAAB APP SUBCRIPTION FEE",
"debit": "805.00",
"info": {"email": "abc@hotmail.com",
"code": "300-E003",
"name": "Jacky"}
},
]
}