Python3 Вложенный словарь печати - PullRequest
1 голос
/ 07 февраля 2020

Ладно, я, по жизни, не смог понять, как сделать этот фрагмент кода. Я думаю, что поскольку мы работаем с уровнем на уровнях, мы уже находимся в первом словаре, поэтому он должен быть уровнем [второй словарь]

Мой текущий вывод - это имя ошибки, которое не определено. Что я хочу сделать, так это уметь печатать имя из каждого словаря, значение подъема и т. Д. c. В конечном итоге я буду опрашивать их в заявлениях. Например, print (level [color]) должен печатать цвет текущего уровня в операторе for или print (level [Admin] [color]) должен выводить цвет admin.

levels={"Admin":{"name":"Admin","hoist":"1","colour":"red"},"Moderator":{"name":"Moderator","hoist":"1","colour":"yellow"},"Henchman":{"name":"Henchman","hoist":"1","colour":"yellow"},"Member":{"name":"Member","hoist":"0","colour":"green"},"Verify":{"name":"Verify","hoist":"1","colour":"white"},"Leach":{"name":"Leach","hoist":"1","colour":"pink"}}



for level in levels:
    print(level[name])

Любая помощь приветствуется.

Вот синтаксис, в котором я его использую.

@client.command()
async def roles(ctx):
    guild=ctx.guild
    for level in levels.keys():
        name=levels[level]['name']
        hoist=levels[level]['hoist']
        colour=levels[level]['colour']
        await guild.create_role(name=name,hoist=hoist)

1 Ответ

1 голос
/ 07 февраля 2020

Все ваши ключи - строки, поэтому вам нужно заключить в кавычки name.

for level in levels:
    print(levels[level]['name'])

print(levels['Admin']['colour'])

Вывод:

Admin
Moderator
Henchman
Member
Verify
Leach

red
...