创建嵌套Python字典的问题

时间:2019-10-22 17:35:37

标签: python dictionary

我尝试使用Python 3创建字典。这是我的代码:

data = {}
data['price'] = []
data['place1'] = []
data['place2'] = []

data['place1'].append({
    'x': 2,
    'y': 1
})
data['place2'].append({
    'a': 5,
    'b': 6
})

data['price'].append(data['place1'])
data['price'].append(data['place2'])
print(data)

所以输出ist:

{'price': [[{'x': 2, 'y': 1}], [{'a': 5, 'b': 6}]], 'place1': [{'x': 2, 'y': 1}], 'place2': [{'a': 5, 'b': 6}]}

但是我需要像下面的示例:

'price'
->'place1'
   ->'x'=2
   ->'y'=1
->'place2'
   ->'a'=5
   ->'b'=6

二重制是正确的方法吗?

感谢您的帮助! 最好,马里斯

3 个答案:

答案 0 :(得分:2)

好吧,您要在此处添加列表data['price'],所以现在data = { 'price': { 'place1': { 'x': 2, 'y': 1 }, 'place2': { 'a': 5, 'b': 6 } } } 是列表列表。

您可以改写一个简单的字典文字:

data = {'price': {}}
data['price']['place1'] = {'x': 2, 'y': 1}
data['price']['place2'] = {'a': 5, 'b': b}

或者,如果您坚持动态添加数据:

{{1}}

答案 1 :(得分:0)

只是为了尽可能保留原始内容,您需要使data['price']成为字典,然后将place1place2放入其中。

data = {}
data['price'] = {}
data['price']['place1'] = []
data['price']['place2'] = []

data['price']['place1'].append({
    'x': 2,
    'y': 1
})
data['price']['place2'].append({
    'a': 5,
    'b': 6
})

答案 2 :(得分:0)

否,您不能将字典上的(:)映射为(=)符号作为输出。