从python中的嵌套dict中检索数据

时间:2017-12-06 16:00:52

标签: json python-2.7

我试图解析dict中的数据。以下是字典。

data = {'specs': u'{"software_addon": None, 
"checkout_os": 
    {12L: {"status": 3L, "units": 1L, "label": "Disk1", "orderproduct_id": 22L, "slider_id": 788L, "unitPrice": 0.3}, 
    15L: {"status": 3L, "units": 60L, "label": None, "orderproduct_id": 22L, "slider_id": 787L, "unitPrice": 0.3}}, 
"checkout_op": {"pk": 11L, "total_price": 90.3, "discount_price": 80.3, "monthly_fee": 80.3}, 
"virtualmachine_vm": {"pk": 15L, "diskGB": 101L, "memoy_size": 3221225472L, "num_cpu": 2L}, 
"checkout_o": {"pk": 74L, "grand_total": 180.3, "discount_price": 180.3}
}', 
'id': 411L, 'name': u'name-7xccf'}

当我试图检索数据时,它会给出错误。

print data['specs']['virtualmachine_virtualmachines']['pk']

错误:字符串索引必须是整数,而不是str

1 个答案:

答案 0 :(得分:1)

我尝试了它并得到了与你相同的错误(即使是伊斯特伍德的建议),但它在消除了u'和相应的结束语之后起作用。 显然,不能将这个u运算符/修饰符用于整个字典。

所以

data = {'specs': {"software_addon": None, "checkout_os": {12L: {"status": 3L, "units": 1L, "label": "Disk1", "orderproduct_id": 22L, "slider_id": 788L, "unitPrice": 0.3}, 15L: {"status": 3L, "units": 60L, "label": None, "orderproduct_id": 22L, "slider_id": 787L, "unitPrice": 0.3}}, "checkout_op": {"pk": 11L, "total_price": 90.3, "discount_price": 80.3, "monthly_fee": 80.3}, "virtualmachine_vm": {"pk": 15L, "diskGB": 101L, "memory_size": 3221225472L, "num_cpu": 2L}, "checkout_o": {"pk": 74L, "grand_total": 180.3, "discount_price": 180.3} }, 'id': 411L, 'name': u'name-7xccf'}
print data['specs']['virtualmachine_vm']['pk']

工作