如何添加字典的特定元素
How to add particular element of dict
sleeps=[{"summaryId ": "x209bf59-59b0c5a8-585c ",
"validation ": "AUTO_TENTATIVE ",
"durationInSeconds ": 22620,
"startTimeInSeconds ": 1504757160,
"awakeDurationInSeconds ": 900,
"startTimeOffsetInSeconds ": -14400,
"deepSleepDurationInSeconds ": 8160,
"lightSleepDurationInSeconds ": 13560},
{"summaryId ": "x209bf59-59b0c5a8-23a0 ",
"validation ": "AUTO_TENTATIVE ",
"durationInSeconds ": 9120,
"startTimeInSeconds ": 1504757160,
"awakeDurationInSeconds ": 300,
"startTimeOffsetInSeconds ": -14400,
"deepSleepDurationInSeconds ": 1680,
"lightSleepDurationInSeconds ": 7140}
]
res = sum([x["durationInSeconds"] for x in sleeps])
print(res)
这是抛出 Keyerror
.
您要修改的键在您的字典定义中有冗余space
"durationInSeconds "
^
散列和比较会考虑空格。如果它们并排打印,可能更容易发现差异:
"durationInSeconds "
"durationInSeconds"
第一个有尾随空格。
>>> hash(s1) == hash(s2)
False
>>> s1 == s2
False
所以它们在任何方面都不相等,这也解释了 KeyError
。要修复它,您需要删除字典中的尾随空格,或者使用尾随空格查找键。例如:
>>> res = sum([x["durationInSeconds "] for x in sleeps])
>>> print(res)
31740
sleeps=[{"summaryId ": "x209bf59-59b0c5a8-585c ",
"validation ": "AUTO_TENTATIVE ",
"durationInSeconds ": 22620,
"startTimeInSeconds ": 1504757160,
"awakeDurationInSeconds ": 900,
"startTimeOffsetInSeconds ": -14400,
"deepSleepDurationInSeconds ": 8160,
"lightSleepDurationInSeconds ": 13560},
{"summaryId ": "x209bf59-59b0c5a8-23a0 ",
"validation ": "AUTO_TENTATIVE ",
"durationInSeconds ": 9120,
"startTimeInSeconds ": 1504757160,
"awakeDurationInSeconds ": 300,
"startTimeOffsetInSeconds ": -14400,
"deepSleepDurationInSeconds ": 1680,
"lightSleepDurationInSeconds ": 7140}
]
res = sum([x["durationInSeconds"] for x in sleeps])
print(res)
这是抛出 Keyerror
.
您要修改的键在您的字典定义中有冗余space
"durationInSeconds "
^
散列和比较会考虑空格。如果它们并排打印,可能更容易发现差异:
"durationInSeconds "
"durationInSeconds"
第一个有尾随空格。
>>> hash(s1) == hash(s2)
False
>>> s1 == s2
False
所以它们在任何方面都不相等,这也解释了 KeyError
。要修复它,您需要删除字典中的尾随空格,或者使用尾随空格查找键。例如:
>>> res = sum([x["durationInSeconds "] for x in sleeps])
>>> print(res)
31740