2014-12-13 150 views
-2

问题字典在python字典

我要动态地创建动态密钥和值的

在这个字典词典我需要把另一个字典,像这样


{"Key Name of file" : "Value Name", 
"Specs" : [{"spec1" : "round", "spec2" : "large", "spec3": "pink"}]} 

我该如何做到这一点?

下面的代码无法正常工作

save = {} 
save['Key name of file'] = 'Value Name' 
save['specs'] = [] 
save['specs'].append([{'spec1', 'spec2', 'spec3'}]) 
save['specs'][0] = 'round' 
save['specs']['spec2'] = 'large' 
+1

dictionay有一对关键和价值,你做错了 – Hackaholic 2014-12-13 09:43:43

回答

1

你的第一个问题是在这里:

save['specs'].append([{'spec1', 'spec2', 'spec3'}]) 

要追加含有3元组:[{'spec1', 'spec2', 'spec3'}],1元素的列表,而不是3元素集本身。所以,save['specs'][0]不是1元素列表,这不是你想要的。所以:

save['specs'].append({'spec1', 'spec2', 'spec3'}) 

你的第二个问题是在同一条直线:{a, b, c}是一组,而不是一个字典;一个字典必须有密钥和值。所以,也许:

save['specs'].append({'spec1': None, 'spec2': None, 'spec3': None}) 

或者,也许只是离开键和值,因为你要设置这些后来反正:

save['specs'].append({}) 

下一页:

save['specs'][0] = 'round' 

这只是将您附加到save['specs']的任何内容替换为字符串'round',这会打败所有艰苦的工作y你刚刚完成。你可能想这一点:

save['specs'][0]['spec1'] = 'round' 

因此,而不是更换整个快译通,你就只设置了'spec1'价值。


下一页:

save['specs']['spec2'] = 'large' 

save['specs']是一个列表,而不是一个字典。您不能在列表中查找'spec2' th元素。您想在列表中第0个元素的'spec2'键:

save['specs'][0]['spec2'] = 'large' 

最后,你从不为'spec3'值设置为'pink'。显然你必须这样做。希望从前两行你可以看到如何做到这一点。