Python: escritura de múltiples diccionarios nesteds en una tabla en un archivo de texto separados por una pestaña

Soy nuevo en Python y estoy luchando con la impresión de varios diccionarios nesteds en una tabla separada por pestaña.

Escribí un script para leer datos de un archivo de entrada y almacenar los datos en 3 diccionarios diferentes:

d1 = {'Ben': {'Skill': 'true', 'Magic': 'false'}, 'Tom': {'Skill': 'true', 'Magic': 'true'}} d2 = {'Ben': {'Strength': 'wo_mana', 'Int': 'wi_mana', 'Speed': 'wo_mana'}, 'Tom': {'Int': 'wi_mana', 'Agility': 'wo_mana'}} d3 = {'Ben': {'Strength': '1.10', 'Int': '1.20', 'Speed': '1.50'}, 'Tom': {'Int': '1.40', 'Agility': '1.60'}} 

Quiero representar los datos en un formato de tabla y cuando se abre en Excel, se ve algo así:

 Name Skill Magic wo_mana wi_mana Ben true false Strength = 1.10 Int = 1.20 Speed = 1.50 Tom true true Agility = 1.60 Int = 1.40 

Así que mi salida deseada en el archivo de salida debería ser así:

 Name\tSkill\tMagic\two_mana\twi_mana Ben\ttrue\tfalse\tStrength = 1.10\tInt = 1.20 \t\t\tSpeed = 1.50\t Tom\ttrue\ttrue\tAgility = 1.60\tInt = 1.40 

Soy consciente de que podría hacer esto usando el módulo csv pero parece que no tendría sentido para varias filas para un registro en csv así que decidí probar el string formatting .

Hice mi mejor esfuerzo y esto es lo que he escrito hasta ahora:

 print('Name\tSkill\tMagic\two_mana\twi_mana\n') for key in d1: print('%s\t%s\t%s' %(key, d1[key]['Skill'], d1[key]['Magic'])) 

y funciona bien para las primeras 3 columnas, Name, Skill and Magic .

Mi pregunta es ¿cómo se supone que debo imprimir los datos de wo_mana y wi_mana en la misma tabla? ¿Debo cambiar mis diccionarios a:

 d1 = {'Ben': {'Skill': 'true', 'Magic': 'false'}, 'Tom': {'Skill': 'true', 'Magic': 'true'}} d23 = {'Ben': {'wo_mana': 'Strength = 1.10', 'wi_mana': 'Int = 1.20', 'wo_mana': 'Speed = 1.50'}, 'Tom': {'wi_mana': 'Int = 1.40', 'wo_mana': 'Agility = 1.60'}} 

¿Para que sean más fáciles de imprimir con string formatting ?

EDITAR :

Si mis diccionarios están en esta forma:

 d123 = {'Ben': {'wo_mana': ['Strength = 1.10', 'Speed = 1.50'], 'wi_mana': ['Int = 1.20'], 'Skill': 'true', 'Magic': 'false'}, 'Tom': {'wi_mana': ['Int = 1.40'], 'wo_mana': ['Agility = 1.60'], 'Skill': 'true', 'Magic': 'true'}} 

¿Sería más fácil?

Intenté escribir mi código para d123 pero todavía no funciona para mí:

 for key in d123_new: print('%s\t%s\t%s\t%s' %(d123_new[key]['Skill'], d123_new[key]['Magic'], x for x in d123_new[key]['wo_mana'], y for y in d123_new[key]['wi_mana'])) 

Por favor, muéstrame cómo imprimir los datos en el formato de tabla que mencioné anteriormente, he intentado todo lo que podía pensar, ¡cualquier ayuda sería muy apreciada!