【问题标题】:python accessing elements in a dictionary inside dictionarypython访问字典内字典中的元素
【发布时间】:2015-10-17 13:21:16
【问题描述】:

我收到来自 riot 的服务器的响应:

def main():
    api = RiotAPI('dec34559a91-ad8b-4fd2-b49a-bae3b4524522b8a')
    summoner_name = str(input("Please enter the summoner ID\n"))
    if summoner_name == "":
        summoner_name = "zLKida"
    r = api.get_summoner_by_name(summoner_name)
    print(r)

打印出这样的东西:

{'zlkidda': {'profileIconId': 539, 'id': 27003987, 'summonerLevel': 30, 'name': 'zLKidda', 'revisionDate': 1444958792000}}

我不知道如何访问字典中的数据。 请注意,它是作为字典返回的,而不是字符串或其他任何东西。

我试过了:

print(r['zlkidda'].['profileIconId'])

【问题讨论】:

    标签: python dictionary riot


    【解决方案1】:

    去掉点:

    print(r['zlkidda']['profileIconId'])
    

    或者专门针对您的代码,重用 summoner_name 变量:

    print(r[summoner_name]['profileIconId'])
    

    你在这里使用subscriptions[...] 从容器中选择一个元素。

    另一方面,. 表示法用于attribute referencing,将其用于dict 方法之类的东西:

    print(list(r['zlkidda'].keys()))
    

    【讨论】:

    • print(r[summoner_name]['profileIconId']) 提供错误:KeyError: 'zLKidda'
    • @LukeGoddard:注意大写LK,但返回的字典全部使用小写。输入全小写名称,或在订阅 r 时使用 summoner_name.lower()
    • 天哪,你真是个天才,谢谢,我想我不会注意到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2023-03-22
    • 2011-07-21
    • 1970-01-01
    • 2011-03-07
    相关资源
    最近更新 更多