我必须建立一个Json数据库(Firebase实时数据库)的分析系统。 这是它的样子:
{
"247" : {
"activity_duration" : 15,
"battery_used" : 0,
"date" : "2017-09-05",
"day" : 247,
"heat_waves" : 3,
"outside_temperature" : 16.64,
"shirt_temperature" : [ 24.883928571428573, 23.660714285714285 ]
},
"262" : {
"activity_duration" : 240,
"battery_used" : 2,
"date" : "2017-09-20",
"day" : 262,
"heat_waves" : 5,
"outside_temperature" : 21.19,
"shirt_temperature" : [ 24.233616504854368, 22.954490291262136 ]
},
"268" : {
"activity_duration" : 260,
"battery_used" : 5,
"date" : "2017-09-26",
"day" : 268,
"heat_waves" : 4,
"outside_temperature" : 16.07,
"shirt_temperature" : [ 18.68695652173913, 17.576630434782608 ]
}
}
要做到这一点,我想在我的json文件中练习python中的计算,就像heat_waves
的平均值一样。
问题是我不能在没有写入raw的情况下访问节点。
data["247"]["heat_waves"]
但我需要data[0]["heat_waves"]
之类的内容。当我尝试时:
import json;
data = [ ];
filename = "Database.json";
with open(filename,'r') as json_data:
data = json.load(json_data);
print(json.dumps(data[0]["heat_waves"], indent=4, sort_keys=True));
我有以下错误消息:
print(json.dumps(data[0]["heat_waves"], indent=4, sort_keys=True));
KeyError: 0
所以,我的最后一个问题是:
答案 0 :(得分:0)
如果您不想按键来解决元素但是使用索引,则可以执行
>>> import json;
>>>
>>> data = [ ];
>>> filename = "Database.json";
>>> with open(filename,'r') as json_data:
... data = json.load(json_data)
>>> data.values()[0]['heat_waves']
5
>>>