簡體   English   中英

有沒有辦法從 python 字典中提取浮點值?

[英]Is there a way of extracting float values from a python dictionary?

我是 Python 的新手,所以我仍在為很多簡單的事情苦苦掙扎。 我有一本結構如下的字典:

<class 'dict'>
{'1388534400000': {'electricity': 0.0}, '1388538000000': {'electricity': 0.0}, '1388541600000': {'electricity': 0.0},...}

我希望我的最終 output 是“電”的浮點值的總和,但第一個鍵('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 ,您可以將electricity的價值sum ,例如,

>>> 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
sum = 0
for key in dict:
    try:
        dict[key] + 2.04
        sum += dict[key]
    except TypeError:
        pass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM