我试图解析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
答案 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']
工作