0
我要生成一个包含多个词典列表,但我遇到了一个奇怪的问题:如何添加一个词典列表正确的Python
for i in xrange(0, len(merchant_id_list)):
for j in xrange(count, count + int(product_list_size[i])):
unit_price = get_unit_price_by_id(merchant_id_list[i], product_id_list[j])
product['id'] = product_id_list[j]
product['quantity'] = quantity_list[j]
product['price'] = unit_price
product_id.append(product)
print i
print merchant_id_list[i]
compound_data['id'] = merchant_id_list[i]
compound_data['product_id'] = product_id
merchant.append(compound_data)
print merchant
count += int(product_list_size[i])
我想要得到的名单如下:
[
{
"id":1,
"product_id":[
{
"id":1,
"quantity": 3,
"price": 11
},
{
"id":2,
"quantity": 2,
"price": 12
}
]
},
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
}
]
但最后它看起来像这样:
[
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
},
{
"id":2,
"product_id":[
{
"id":16,
"quantity": 2,
"price": 22.22
}
]
它看起来是最后一个元素覆盖所有公关e字典。我已经打印出变量'i'和'merchant_id_list',它是可以的。如何解决它?由于
的显着问题是,你有同样的问题 - 它并不重要无论您是存储子列表或字典中的列表,只是它的某种可变对象。该解决方案将是你不同,但原理是一样的 - 你必须要为你想把列表中的每个事情*单独的对象*。 – 2014-11-09 08:15:26