我有两个相同索引长度的长列表(从csv中提取)。 例如:
l1 = ['Apple','Tomato','Cocos'] #name of product
l2 = ['1','2','3'] #some id's
我用这种方法制作了字典:
from collections import defaultdict
d = defaultdict(list)
for x in l1:
d['Product'].append(x)
for y in l2:
d['Plu'].append(y)
print d
这将输出:
{'产品':['Apple','番茄','Cocos'],'Plu':['1','2','3']}
(Product
和Plu
是我想要的密钥)
现在我尝试将其导入这样的JavaScript对象:
import json
print(json.dumps(d, sort_keys=True, indent=4))
这将输出:
{
"Plu": [
"1",
"2",
"3"
],
"Product": [
"Apple",
"Tomato",
"Cocos"
]
}
但我想要的输出是:
{
Product:'Apple',
Plu:'1'
},
{
Product:'Tomato',
Plu:'2'
},
{
Product:'Cocos',
Plu:'3'
}
稍后我将使用它在MongoDB中插入值。为了获得理想的输出,我需要在json.dump(或我的dict中)更改什么?还有一种方法可以将输出保存在txt文件中吗? (因为我会有一个很大的代码)。
答案 0 :(得分:0)
不是使用defaultdict
(在这种情况下不会为您购买任何东西),您最好zip
ping列表并创建dict
来自每一对:
[{'Product': product, 'Plu': plu} for product, plu in zip(l1, l2)]