收到KeyError,但嵌套字典中存在键

时间:2020-04-05 22:38:45

标签: python string dictionary get

尝试在字典中引用值时,我收到KeyError,但是密钥(NIO)在字典中。

排查故障时,我发现

NIO
<class 'str'>

创建KeyError,但是

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

返回

$(eval ..)

1 个答案:

答案 0 :(得分:0)

问题出在那一行:

java_test

应该是:

symbol = str(symbol)

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