我的数据库格式如下:
{
"latitude" : 41.884629,
"longitude" : -87.648764,
"name" : "Bar Siena",
"placeID" : "ChIJf3h_t9osDogReehZO7Hgk50",
"vibes" : {
"LGpswrvLgfYppcBG4bpmNzXQVoU2" : {
"rating" : 1,
"timestamp" : 1.477961061358844E9
},
"OSzA2KhTBWS3pxVnCZ6eScAuNDG3" : {
"rating" : 5,
"timestamp" : 1.477955566836665E9
}
}
}
我想拉出每个条形图的名称,以及振动表中与之对应的每个评级。我的代码如下所示:
firebase = pyrebase.initialize_app(config)
db = firebase.database()
for i in range(1,100):
venues = db.child("venues").child(i).get()
dict = (venues.val())
print(dict['name'])
到目前为止,我只能得到这些名字,但我不确定如何更深入地获得收视率。我的数据库是使用Firebase管理的,我正在使用一个名为Pyrebase的python库,它只是javascript api的包装器。我遇到了麻烦,因为每个氛围都有一个生成的哈希键,所以我不确定如何更深入。有什么想法吗?
答案 0 :(得分:1)
vibes
可能是一本字典。你想要的是每个哈希键的评级,所以你可以做类似
for hashkey, vibe_dict in dict['vibes'].items(): # dict is a Python keyword, so it's a bad choice for a variable!
print(hashkey, vibe_dict['rating'])
答案 1 :(得分:0)
我不确定firebase
,但在普通的python中你可以这样做:
>>> for vibe in my_json['vibes'].values():
... print vibe['rating']
...
1 # Rating of item 1
5 # Rating of item 2
其中my_json
是json的dict
版本:
{
"latitude":41.884629,
"longitude":-87.648764,
"name":"Bar Siena",
"placeID":"ChIJf3h_t9osDogReehZO7Hgk50",
"vibes":{
"LGpswrvLgfYppcBG4bpmNzXQVoU2":{
"rating":1,
"timestamp":1.477961061358844E9
},
"OSzA2KhTBWS3pxVnCZ6eScAuNDG3":{
"rating":5,
"timestamp":1.477955566836665E9
}
}
}
答案 2 :(得分:0)
如果您的venues
变量是一个类似JSON的对象,您可以使用标准json
库来处理它:
import json
dict_data = json.loads(venues)
print dict_data['latitude']
顺便说一下,这是一种糟糕的开发方式 - 覆盖内置的Python功能。在您的示例中,您将覆盖dict(dict是默认的Python类型对象)