繁体   English   中英

从 Python 中的嵌套字典中提取数据

[英]Extracting Data from a Nested Dictionary in Python

我是新来的,这是我的第一个问题。 我们都从某个地方开始:D

我通过 API 将这些数据返回给我,并将其存储在名为jsonResponseData的变量中

{
    "date-value": [{
        "dateTime": "2020-06-25",
        "value": "34365"
    }, {
        "dateTime": "2020-06-26",
        "value": "7268"
    }, {
        "dateTime": "2020-06-27",
        "value": "4762"
    }, {
        "dateTime": "2020-06-28",
        "value": "4650"
    }, {
        "dateTime": "2020-06-29",
        "value": "2934"
    }, {
        "dateTime": "2020-06-30",
        "value": "4973"
    }, {
        "dateTime": "2020-07-01",
        "value": "3594"
    }, {
        "dateTime": "2020-07-02",
        "value": "19674"
    }]
}

这甚至是嵌套字典吗? 我对编程相当陌生,欢迎任何帮助,不管它是什么,我将如何解析它,所以我只保留 7 个value ,然后能够将它们加起来为一个数字。

您可以遍历列表,并访问里面的字典。

for entry in data['date-value']:
    print(entry['value'])
    # or whatever else you want to do with the values

这是提取这些值的一种方法(假设上面的 object 称为dict )。

for val in dict["date-value"]:
  print(val["value"])
values = [x["value"] for x in jsonResponseData["date-value"]]

列表理解

是的,这是一个嵌套字典。 您可以使用列表推导,而不是使用循环。

>>> sum(int([inner['value']) for inner in my_dict['date-value']])
82220

对于 my_dict 中的每个嵌套字典,将 'value' 元素转换为 integer 并对结果求和。

您可以使用此 function 它将返回值的总和。 希望这可以帮助!

def getValuesSum(json_data):
    values_list=[int(items['value']) for items in json_data['date-value']]
    return sum(values_list)

这甚至是嵌套字典吗?

有点。 这是一本字典,里面有一个字典列表。

不管它是什么,我将如何解析它,所以我只保留 7 个值,然后能够将它们加起来为一个数字。

尝试这个:

import json

data = """
{
    "date-value": [{
        "dateTime": "2020-06-25",
        "value": "34365"
    }, {
        "dateTime": "2020-06-26",
        "value": "7268"
    }, {
        "dateTime": "2020-06-27",
        "value": "4762"
    }, {
        "dateTime": "2020-06-28",
        "value": "4650"
    }, {
        "dateTime": "2020-06-29",
        "value": "2934"
    }, {
        "dateTime": "2020-06-30",
        "value": "4973"
    }, {
        "dateTime": "2020-07-01",
        "value": "3594"
    }, {
        "dateTime": "2020-07-02",
        "value": "19674"
    }]
}
"""

data_dict = json.loads(data)

values = 0
for x in data_dict["date-value"]:
    values += int(x['value'])

print(values)

这应该导致值是所有 7 个数字的总和。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM