Python:在一个文本文件中的一个表中写入多个嵌套字典,用tab分隔
我是Python新手,我正在努力将多个嵌套字典打印在一个表中,并用tab分隔 我编写了一个脚本,从输入文件读取数据,并将数据存储在3个不同的字典中:Python:在一个文本文件中的一个表中写入多个嵌套字典,用tab分隔,python,python-2.7,dictionary,string-formatting,Python,Python 2.7,Dictionary,String Formatting,我是Python新手,我正在努力将多个嵌套字典打印在一个表中,并用tab分隔 我编写了一个脚本,从输入文件读取数据,并将数据存储在3个不同的字典中: d1 = {'Ben': {'Skill': 'true', 'Magic': 'false'}, 'Tom': {'Skill': 'true', 'Magic': 'true'}} d2 = {'Ben': {'Strength': 'wo_mana', 'Int': 'wi_mana', 'Speed': 'wo_mana'}, 'Tom':
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'}}
我想以表格格式表示数据,在Excel中打开时,它看起来像这样:
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
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
因此,我希望输出文件中的输出如下:
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
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
我知道我可以使用csv
模块来实现这一点,但是对于csv
中的一条记录来说,多行似乎没有意义,因此我决定尝试字符串格式设置
我尽了最大努力,这就是我迄今为止所写的:
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']))
它在前3列中运行良好,Name、Skill和Magic
我的问题是如何将wo\u mana
和wi\u mana
数据打印到同一个表中?我是否应该将词典更改为:
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'}}
这样它们就更容易用字符串格式打印了
编辑:
如果我的词典采用以下形式:
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'}}
会更容易吗
我试图为d123
编写代码,但它仍然不适用于我:
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']))
请告诉我如何打印的表格格式,我上面提到的数据,我已经尝试了一切,我可以想到的,任何帮助将不胜感激