2016-07-26 5 views
-1

У меня есть 2 длинных списка (извлеченных из csv) с одинаковой длиной индекса. Пример:Словарь для преобразования объектов JSON

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 

Это будет:

{ 'Product': [ 'Apple', 'Томат', «Кокосовые '], '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

@jherax Это не является вопрос JS! – Bergi

+0

@Bergi вы правы, спасибо за исправление тегов +1 – jherax

ответ

0

Вместо того чтобы использовать defaultdict (который не покупает вам что-нибудь в этом случае), вы лучше zip пинг списки и создания dict из каждой пары:

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

Я получу список диктонов, как я могу преобразовать это позже в объект javascript? – iRocku

+0

@iRocku - вы можете 'json.dumps' его, а затем поместить его в свой файл HTML/Javascript как-то .... – mgilson

+0

oh wow, он работает, есть ли возможность удалить [] в начале и в конце, когда Я создаю свой объект javascript? – iRocku

Смежные вопросы