При попытке обратиться к значению в моем словаре я получаю 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