Python: fusión de diccionario actualizando pero no sobrescribiendo si existe valor

Si tengo 2 dictados de la siguiente manera:

d1 = {('unit1','test1'):2,('unit1','test2'):4}
d2 = {('unit1','test1'):2,('unit1','test2'):''}

Para 'fusionarlos':

z = dict(d1.items() + d2.items())
z = {('unit1','test1'):2,('unit1','test2'):''}

Funciona bien. Además, ¿qué hacer si quisiera comparar cada valor de dos diccionarios y solo actualizar d2 en d1 si los valores en d1 están vacíos / Ninguno / ''?

[EDITAR Pregunta: Al actualizar d2 en d1, cuando existe la misma clave, me gustaría mantener solo el valor numérico (ya sea de d1 o d2) en lugar del valor vacío. Si ambos valores están vacíos, entonces no hay problemas para mantener el valor vacío. Si ambos tienen valores, entonces el valor d1 debería permanecer. :) (mucho si-de lo contrario ... mientras tanto, lo probaría yo mismo)

es decir

d1 = {('unit1','test1'):2,('unit1','test2'):8,('unit1','test3'):''}
d2 = {('unit1','test1'):2,('unit1','test2'):'',('unit1','test3'):''}

#compare & update codes

z = {('unit1','test1'):2,('unit1','test2'):8, ('unit1','test2'):''} # 8 not overwritten by empty.

por favor ayuda a sugerir.

Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta