繁体   English   中英

接收 KeyError 但键存在于嵌套字典中

[英]Receive KeyError but key exists in nested dictionary

当试图在我的字典中引用一个值时,我收到 KeyError,但是键(NIO)在字典中。

经过故障排除,我发现

['NIO']
<class 'str'>

创建 KeyError,但是

NIO
<class 'str'>

按预期运行程序。

我不完全理解字符串的区别,也找不到很好的解释。

上面的字符串有什么区别,如何将第一个转换为第二个?

下面的例子:

symbol = ['NIO']
holdings_data = {'BA': {'price': '122.720000', 'quantity': '1.00000000'}, 
'NIO': {'price': '2.440000', 'quantity': '2.00000000'}}


def trade_history(symbol, holdings_data):
    symbol = str(symbol)
    print(symbol)
    print(type(symbol))
    #symbol = 'NIO'
    #print(symbol)
    #print(type(symbol))
    quantity = (holdings_data[symbol].get('quantity'))
    print(quantity)

trade_history(symbol, holdings_data)

返回

KeyError: "['NIO']"

但加入

symbol = 'NIO'
print(symbol)
print(type(symbol))

返回

['NIO']
<class 'str'>
NIO
<class 'str'>
2.00000000

问题在于:

symbol = str(symbol)

它应该是:

symbol = str(symbol[0])

发生这种情况是因为您试图将列表更改为字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM