python - 有没有办法从 python 字典中提取浮点值?
问题描述
我是 Python 新手,所以我仍在为很多简单的事情而苦苦挣扎。我有一本结构如下的字典:
<class 'dict'>
{'1388534400000': {'electricity': 0.0}, '1388538000000': {'electricity': 0.0}, '1388541600000': {'electricity': 0.0},...}
我希望我的最终输出是“电力”的浮点值的总和,但第一个键发生了('1388534400000', '1388538000000',...)
变化。考虑到字典不可索引,我该如何在 python 中做到这一点?在从网站提取信息并从另一个具有 2 个子集的字典中提取信息后,我从 json 文件中获取了这本字典:“元数据”和“数据”。
我已经尝试过dictionary.values()
,但它返回一个 dict_values 包含对“电”和相应的浮点值。
这是我正在使用的代码:
r = s.get(url, params=args)
packages_json = r.json()
print(packages_json)
print(type(packages_json))
package_json = packages_json['data']
print(type(package_json))
print(package_json)
解决方案
假设,您将始终electricity
在值中有一个键,您可以只是喜欢sum
的值,electricity
>>> d
{'1388534400000': {'electricity': 0.0}, '1388538000000': {'electricity': 0.0}, '1388541600000': {'electricity': 0.0}}
>>> sum(v['electricity'] for k,v in d.items())
0.0
要不就,
>>> sum(v['electricity'] for v in d.values())
0.0
而且,也许使用后者,因为我做了一个基准测试,
>>> import timeit
>>> timeit.timeit("sum(v['electricity'] for k,v in d.items())", setup="d={'1388534400000': {'electricity': 0.0}, '1388538000000': {'electricity': 0.0}, '1388541600000': {'electricity': 0.5}}")
0.4952311920005741
>>> timeit.timeit("sum(v['electricity'] for v in d.values())", setup="d={'1388534400000': {'electricity': 0.0}, '1388538000000': {'electricity': 0.0}, '1388541600000': {'electricity': 0.5}}")
0.4470630470004835
推荐阅读
- php - Laravel 6 - auth()->user()||Auth::user() 在禁用 verifycsrfToken 中间件的路由上不起作用,返回空对象
- flutter - Flutter(android)调用动态库(rust预建)Release模式加载动态库失败
- sql-server - 对 500+ 百万行表的主键列的选择查询没有响应
- python-3.x - apache 中的 mod_wsgi 无法正确呈现 html 根目录
- wcf - BtsActionMapping 不理解
- angular - 如何将 jison 解析器中的函数导出到 Angular?
- ajax - 在 Woocommerce 中使用 ajax 删除购物车项目时,如果购物车为空,则重定向到商店页面
- r - 如何获取R中热图的每个集群中的基因列表
- c# - 无法在 Unity 中访问我的一个特定 C# 脚本
- javascript - 如果条件不能正常工作 ajax javascript