【问题标题】:How to get the value from a dictionary as an integer during dictionary comprehension如何在字典理解期间从字典中获取值作为整数
【发布时间】:2021-09-11 12:31:22
【问题描述】:

以下是我目前正在获取 api 信息并将其输入请求模块以使其在控制台中可读的概要:

response = requests.get(STOCK_ENDPOINT, params=stock_params)
response.raise_for_status()
stock_info = response.json()
yesterday = stock_info["Time Series (Daily)"][f"{YESTERDAY}"]

昨天打印时返回:

{'1. open': '671.64', '2. high': '694.6999', '3. low': '670.32', '4. close': '688.72', '5. adjusted close': '688.72', '6. volume': '21516348', '7. dividend amount': '0.0000', '8. split coefficient': '1.0'}

从这里我现在使用字典理解来获取昨天的收盘价:

y_close = {k:v for (k,v) in yesterday.items() if k == "4. close"}
print(y_close)

返回:

{'4. close': '688.72'}

从这里我有点卡在如何从字典中获取数字本身以供以后用于数学。谁能帮帮我?

已尝试使用 y_close.values() 但返回

dict_values(['688.72'])

老实说,我不知道如何继续。尝试过使用 for 循环和函数之类的东西,但似乎无法仅获得原始数字。

【问题讨论】:

    标签: python-3.x dictionary-comprehension


    【解决方案1】:
    a = {'4. close': '688.72'}
    
    float(list(a.values())[0])
    
    float(a['4. close'])
    
    float([v for k,v in a.items()][0])
    
    [float(v) if "close" in k else 0 for k,v in a.items()]
    

    【讨论】:

    • 谢谢!没想到将浮点数添加到我尝试过的列表理解中。不知道我是怎么错过的!
    猜你喜欢
    • 2016-03-14
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多