如果我理解正确,dict包含两个id,然后包含与这些id相关的一些值,格式为
-
id_<tid>
=事物ID
-
<vid>_<tid>
=与该事物相关的值
所以有点像
data = {'id_370': '370', '350_370': 'try_1', '450_370': 'try_2', 'id_397': '397', '350_397': 'try_3', '450_397': 'try_4'}
ids = {k.split('_')[1] for k in data if k.startswith('id_')}
groups = {}
for id in ids:
groups[id] = {
k.split('_')[0]: v
for (k, v)
in data.items()
if not k.startswith('id_') and k.endswith('_' + id)
}
print(groups)
将数据转换为更通俗易懂的形式:
{
'397': {'350': 'try_3', '450': 'try_4'},
'370': {'350': 'try_1', '450': 'try_2'},
}
这样,您可以更简单地循环对象ID并使用值进行操作:
for thing_id, values_dict in groups.iteritems():
# get thing from database, update it if needed
编辑:
例如,要打印所有内容:
for thing_id, values_dict in groups.items():
for value_id, value_value in values_dict.items():
print(thing_id, value_id, value_value)
印刷品
397 350 try_3
397 450 try_4
370 350 try_1
370 450 try_2