2013-07-19 6 views
0

У меня есть данные, как следующее:как преобразовать строку в словарь в Python

data = """ 
a:b,c,a 
b:c,d 
c:b 
d:c 
""" 

Я хочу, чтобы преобразовать эту строку в словарь, как это:

data_dict = {'a':['b','c','a'],'b':['c','d'],'c':['b'], 'd':['c']} 

Я попытался:

data_list = data.strip('\n').split('\n') 
data_str = ", ".join(repr(i) for i in data_list) 
data_dict = {} 

for i in range(len(data_list)): 
    keys, values = data_list[i].split(':') 
    key = keys.split('\t') 
    value = values.split('\t') 
    data_dict = dict(zip(key, value)) 
    print data_dict 

Но, к сожалению, я получил:

{'a':'b,c,a'} 
{'b':'c,d'} 
{'c':'b'} 
{'d':'c'} 

Может ли кто-нибудь помочь мне? Большое спасибо.

ответ

1

Как о чем-то вроде:

>>> kvs = (line.split(":", 1) for line in data.strip().splitlines()) 
>>> d = {k: v.split(",") for k,v in kvs} 
>>> d 
{'a': ['b', 'c', 'a'], 'c': ['b'], 'b': ['c', 'd'], 'd': ['c']} 
+0

Спасибо Soooooo много !!!! Оно работает!! – user2597888

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