【问题标题】:Dictionary returns none in spite of key existing in it尽管其中存在密钥,但字典不返回任何内容
【发布时间】:2021-02-22 11:10:35
【问题描述】:

我在我的程序开始时循环加载我的字典。 它包含以下值。

{3456: ['TATAMOTORS'], 13404: ['SUNTV'], 3718: ['VOLTAS'], 3499: ['TATASTEEL'], 
5900: ['AXISBANK'], 2885: ['RELIANCE'], 15083: ['ADANIPORTS'], 11287: ['UPL']}

当我获得流式数据时,我想知道库存是多少。例如。如果我通过 3718,我应该得到“VOLTAS”。上面的字典永远不会改变。

我的代码如下。 Stream_data 是 json。并且令牌被正确获取

token=stream_data['response']['data']['sym'].replace('_NSE','').strip()
print(token)
print(imp.dictoftokens)
stock = imp.dictoftokens.get(token)

我做错了什么?我在控制台中试了一下并手动传递了一个令牌,它工作正常。

【问题讨论】:

  • 提示:不要让print 迷惑你。使用print(repr(thing))
  • 你的字典中的键是整数/数字,你的令牌是一个字符串。尝试 .get(int(token)),或将您的键转换为字符串。

标签: python dictionary keyerror


【解决方案1】:

看起来您的 token 对象属于 str 类型,但您的键属于 int 类型:

将令牌类型更改为int,它应该可以按预期工作:

token=int(stream_data['response']['data']['sym'].replace('_NSE','').strip())

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2016-03-22
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多