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

时间:2020-07-02 18:12:41

标签: 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值,然后能够将它们加到一个数字中。

6 个答案:

答案 0 :(得分:2)

您可以遍历列表,并访问其中的字典。

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

答案 1 :(得分:1)

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

for val in dict["date-value"]:
  print(val["value"])

答案 2 :(得分:1)

values = [x["value"] for x in jsonResponseData["date-value"]]

列表理解

答案 3 :(得分:1)

是的,这是一本嵌套字典。除了使用循环之外,您还可以使用列表推导。

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

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

答案 4 :(得分:1)

您可以使用此函数将返回值的总和。希望这会有所帮助!

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

答案 5 :(得分:0)

这甚至是嵌套的字典吗?

排序。这是一本字典,里面有字典列表。

不管它是什么,我将如何解析它,因此我只保留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个数字的总和。