如何解决我在列表中有字典,我想从价值中获取关键
假设我要说“ ETHBTC”,它将给我“ bidPrice”和“ askPrice”的值
My_dic = [{"symbol": "ETHBTC","bidPrice": "0.03589300","askPrice": "0.03589600"},{
"symbol": "LTCBTC","bidPrice": "0.00539200","askPrice": "0.00539300"}]
解决方法
您可以这样做:
def get_price(My_dict,symbol):
for i in My_dict:
if i["symbol"] == symbol:
return i["bidPrice"],i["askPrice"]
print(get_price(My_dict,"ETHBTC"))
,
这里是获得直觉的一种方式:
>>> input_symbol = "ETHBTC"
>>> target_dictionary = [d for d in My_dic if d.get("symbol") == input_symbol][0]
>>> print((target_dictionary.get("bidPrice"),target_dictionary.get("askPrice")))
('0.03589300','0.03589600')
包裹在函数中,还要考虑是否找到您的符号:
def get_prices_for_symbol(sbl):
target_dictionaries = [d for d in My_dic if d.get("symbol") == sbl]
if target_dictionaries:
target_dictionary = target_dictionaries[0]
return (target_dictionary.get("bidPrice"),target_dictionary.get("askPrice"))
else:
raise Exception(f"Symbol {sbl} was not found.")
>>> get_prices_for_symbol("ETHBTC")
('0.03589300','0.03589600')
>>> get_prices_for_symbol("LTCBTC")
('0.00539200','0.00539300')
>>> get_prices_for_symbol("test")
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "<stdin>",line 7,in get_prices_for_symbol
Exception: Symbol test was not found.
,
您可以尝试以下代码;
def find(My_dic,sym):
for i in My_dic:
if i["symbol"]==sym:
return i["bidPrice"],i["askPrice"]
print(find(My_dic,"ETHBTC"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。