这是我拥有的数据结构
{"A": [
{ 'key1 a' : 'value1',
'key2 a' : 'A'
'key3 a' : 'xyz'
},
{ 'key1 a' : '',
'key2 a' : 'B'
'key3 a' : ''
},
{ 'key1 a' : 'value3',
'key2 a' : 'value4'
'key3 a' : 'xyz'
}
],
"B": [
{ 'key1 b' : 'value1',
'key2 b' : 'A'
'key3 b' : 'xyz'
},
{ 'key1 b' : '',
'key2 b' : 'C'
'key3 b' : ''
},
{ 'key1 b' : 'value3',
'key2 b' : 'value4'
'key3 b' : 'xyz'
}
]
}
现在,
我想连接一个字典的值,如果这个字符为true,那么除了key2之外所有其他字段都是空的,那么key2的值应该与之前的字典key2连接,并且应该自行删除。
预期输出
{"A": [
{ 'key1 a' : 'value1',
'key2 a' : 'A B'
'key3 a' : 'xyz'
},
{ 'key1 a' : 'value3',
'key2 a' : 'value4'
'key3 a' : 'xyz'
}
],
"B": [
{ 'key1 b' : 'value1',
'key2 b' : 'A C'
'key3 b' : 'xyz'
},
{ 'key1 b' : 'value3',
'key2 b' : 'value4'
'key3 b' : 'xyz'
}
]
}
到目前为止,我所做的是
for k,v in final_dict.iteritems():
i=0
j=len(v)
while i < j:
if((not(v[i]["key1 a"])) and (not(v[i]["key3 a"]))):
v[i-1]["key2 a"] = v[i-1]["key2 a"] + v[i]["key2 a"]
v.pop(i)
del v[i]
j=j-1
else:
i=i+1
答案 0 :(得分:0)
希望这就是你要找的东西:
dict2 = {}
listElem = []
for key,value in dict1.iteritems():
for listelem_dict in value:
for sub_k, sub_v in listelem_dict.iteritems():
if sub_k.startswith(('key1','key3')) and sub_v == '':
continue
else:
listElem.append(listelem_dict)
break
break
dict2[key] = listElem
print dict2
使用dict1是下面提到的数据结构:在给定的数据结构中,缺少一些逗号。假设缺少逗号是一个拼写错误。
dict1 = {"A": [
{ 'key1 a' : 'value1',
'key2 a' : 'A',
'key3 a' : 'xyz'
},
{ 'key1 a' : '',
'key2 a' : 'B',
'key3 a' : ''
},
{ 'key1 a' : 'value3',
'key2 a' : 'value4',
'key3 a' : 'xyz'
}
],
"B": [
{ 'key1 b' : 'value1',
'key2 b' : 'A',
'key3 b' : 'xyz'
},
{ 'key1 b' : '',
'key2 b' : 'C',
'key3 b' : ''
},
{ 'key1 b' : 'value3',
'key2 b' : 'value4',
'key3 b' : 'xyz'
}
]
}