我是python的新手,我一直在尝试编写一个程序来跟踪我的蒸汽库存的总价值。我已经能够检索到我所有的皮肤和价格,但问题是将价格输出与steam_community_market.market模块输出隔离开来,后者是一个包含大量不必要信息的列表。我一直找不到如何从列表中只筛选特定的字符串。我试图过滤的列表格式的一个例子是:
skins_prices = [
{'Mann Co. Supply Crate Key': {
'success': True,
'lowest_price': '$2.50',
'volume': '6,489',
'median_price': '$2.45'},
'AK-47 | Redline (Field-Tested)': {
'success': True,
'lowest_price': '$15.00',
'volume': '749',
'median_price': '$14.78'}
}
]
我还没有到把成本加在一起的部分,因为首先我需要隔离每个项目的"最低价格",我怎么能做到这一点,这样我就可以用这个数字来计算总价值/成本(意味着它需要是浮动的(?如果您需要更多详细信息或有任何问题,请告诉我。任何有帮助的,提前谢谢。
这是注释中标识的嵌套字典的问题。这里有一个示例代码来帮助:
key = 'lowest_price'
lowest_prices = {}
for k, v in skins_prices[0].items():
for k1, v1 in v.items():
if k1 == key:
lowest_prices[k] = float(v1[1:])
print(lowest_prices)
输出(我已删除$并转换为浮动(:
{'Mann Co. Supply Crate Key': 2.5, 'AK-47 | Redline (Field-Tested)': 15.0}
现在,您可以使用新字典来操作这些值。例如,获取总和如下所示:
>> sum(list(lowest_prices.values()))
>> 17.5
HTH。
我认为您需要:
low_prices = []
# as your list has only 1 component we are using `[0]` and iterating over it
for _, v in skins_prices[0].items():
low_prices.append(float(v["lowest_price"][1:]))
print(low_prices)
输出:
[2.5, 15.0]
解释
v["lowest_price"][1:]
我们使用索引来忽略str中的第一个字符$
,所以现在的值将是2.5
或15
。
在此基础上,我们应用float
将str
转换为float
,并将其附加到新的列表中,即low_prices