2013-11-22 4 views
-1
tags = {'stream', 'auth'} 
tags['stream']= {} 
tags["stream"]["path"]= ["/streams"] 
tags['stream']['attribute']= ['id', 'secure', 'cpcode', 'format', 'event_pattern'] 

Приведенный выше код выдает ошибку:dictinary словаря в Python

tags["stream"]= {} 
TypeError: 'set' object does not support item assignment 

Как создать словарь словаря списка?

ответ

2

{'stream', 'auth'} - это набор литералов, а не словарь.

Использование словаря буквальным:

tags = {'stream': {}, 'auth': {}} 
tags["stream"]["path"]= ["/streams"] 
tags['stream']['attribute']= ['id', 'secure', 'cpcode', 'format', 'event_pattern'] 

>>> type({'stream', 'auth'}) 
<type 'set'> 
>>> type({'stream': {}, 'auth': {}}) 
<type 'dict'> 
>>> 
4

Вы создали set, а не словарь. Вы должны указать пары ключ-значение:

tags = {'stream': None, 'auth': None} 

или указать вложенный словарь в буквальном обозначениям месте:

tags = { 
    'stream': { 
     'path': ["/streams"], 
     'attribute': ['id', 'secure', 'cpcode', 'format', 'event_pattern'], 
    }, 
    'auth': None, 
} 

В {value, value, value} синтаксис (без ключей) множество буквальное обозначение.

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