我有一个有很多东西的字典:
{'id-quantity-60': u'1', 'id-quantity-35': u'3','id-product-35': u'on', 'id-product-60': u'on',}
我需要创建一个包含所有三个元素的列表。 我期待这样一份清单:
<type 'list'>: [['60', u'1', u'on'], ['35', u'3', u'on'],]
我上面只有2个值,但是是同一个product-id的2倍。所以它应该将数量和“开-关”一起添加到同一个product-id
我该怎么做?我试过这样的方法:
for key, value in request.params.items():
if key[:12] == 'id-quantity-':
if key[12:] in list:
list.insert(key[12:], value)
else:
list.append([key[12:], value])
if key[:11] == 'id-product-':
if key[11:] in list:
list.insert(key[11:], value)
else:
list.append([key[11:], value])
问题是我总是得到这个列表splitet:
<type 'list'>: [['60', u'1'], ['35', u'3'], ['35', u'on'], ['60', u'on'],]
最后,我应该能够在这里填写数据(60,1,适用于示例):
data = request.registry['website']._subscription_exclude_product(cr, uid, [{'product_id': int(60), 'qty': int(1), 'like': bool(True)}], context=context)
非常感谢。你知道吗
您可以将defaultdict()与包含2个项目的默认列表一起使用,以使其更加灵活:
退货:
如果您真的需要列表:
假设数量键和产品键在字典中的格式相同:
输出
这是你所期望的吗?你知道吗
相关问题 更多 >
编程相关推荐