如果列表中的其他键相同,如何在value_map
下添加新的时间戳作为嵌套的json?
下面是dicts的示例列表。你知道吗
dicts = [{
"key": "v3_CA125_2019-09-19",
"sn": "M9257",
"value_map": {
"06:59:59": {
"V_615": "1",
"V_616": "2",
}
}
},
{
"key": "v3_CA125_2019-09-19",
"sn": "M9257",
"value_map": {
"10:59:59": {
"V_613": "30",
"V_614": "22"
}
}
},
{
"key": "v3_CA125_2019-09-23",
"sn": "M9257",
"value_map": {
"12:59:59": {
"V_615": "33"
}
}
},
{
"key": "v3_CA125_2019-09-23",
"sn": "M9257",
"value_map": {
"09:59:59": {
"V_602": "0.208984375"
}
}
}
]
我试图得到如下输出:
dicts = [{
"key": "v3_CA125_2019-09-19",
"sn": "M9257",
"value_map": {
"06:59:59": {
"V_615": "1",
"V_616": "2",
},
"10:59:59": {
"V_613": "30",
"V_614": "22"
}
}
},
{
"key": "v3_CA125_2019-09-23",
"sn": "M9257",
"value_map": {
"12:59:59": {
"V_615": "33"
},
"09:59:59": {
"V_602": "0.208984375"
}
}
}
]
我试图在value_map
后面加上OrderedDict
,但到目前为止还没有找到某样东西。有什么建议吗?你知道吗
from collections import OrderedDict
d = OrderedDict()
for l in dicts :
d.setdefault((l['partition_key'], l['sort_key'], l['sn']), set()).add(l['value_map'])
result = [{'partition_key': k[0], 'sort_key': k[1], 'sn':k[2], 'value_map': v.pop() if len(v) == 1 else v} for k, v in d.items()]
值映射属性必须是数组
[]
,而不是dict{}
当你需要一本字典时,你可以把值映射成一个列表。你知道吗
相关问题 更多 >
编程相关推荐