字典到JSON对象的转换

时间:2016-07-26 18:56:50

标签: python json dictionary

我有两个相同索引长度的长列表(从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']}

ProductPlu是我想要的密钥)

现在我尝试将其导入这样的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文件中吗? (因为我会有一个很大的代码)。

1 个答案:

答案 0 :(得分:0)

不是使用defaultdict(在这种情况下不会为您购买任何东西),您最好zip ping列表并创建dict来自每一对:

[{'Product': product, 'Plu': plu} for product, plu in zip(l1, l2)]