你好,我是json的新面孔,我想问一些关于它的事情,无论如何这里是我的代码:
for key in result1date.keys():
key = sorted(result1date.keys())
currentdate = key
print currentdate
result1 = firebase.get('/Rooms/Room1/' + currentdate + '/Inspection/Scan-in/Inspector/', None)
result2 = firebase.get('/Rooms/Room1/' + currentdate + '/Inspection/Scan-out/Inspector/', None)
print result1
print currentdate
for key in result1.keys():
inspector = key
timeout = result2[inspector]["Time"]
# for key in result1date.keys():
# Date = key
result1datetime = firebase.get('/Rooms/Room1/'+ currentdate +'/Inspection/Scan-in/Inspector/'+ inspector +'/', None)
for key in result1datetime.keys():
key = sorted(result1datetime.keys())[-2]
time = key
print time
print time
ch1 = result1datetime[time]["Checklist"]["Entrance louver clean and dust-free"]
# ch2 = result1datetime[time]["Checklist"]["Room plate number – clean and well-polished"]
ch3 = result1datetime[time]["Checklist"]["Appearance door surface- in good condition"]
# ch4 = result1datetime[time]["Checklist"]["Let the door close by itself to test the door closure – in working order"]
ch5 = result1datetime[time]["Checklist"]["Eye viewer and fire escape plan in order"]
ch6 = result1datetime[time]["Checklist"]["Privacy Sign or Make Up Room Sign"]
# ch7 = result1datetime[time]["Checklist"]["Key card holder – in working order"]
ch8 = result1datetime[time]["Checklist"]["Switches at the entrance working correctly"]
#CLOSET
#ch9 = result1datetime[time]["Checklist"]["Let the door close by itself to test the door closure – in working order"]
RESERVED FOR DOOR IN WORKING CONDITION
ch10 = result1datetime[time]["Checklist"]["Lights in working order"]
# items below are sufficient
ch11 = result1datetime[time]["Checklist"]["6 Hangers?"]
ch12 = result1datetime[time]["Checklist"]["2 bathrobes?"]
ch13 = result1datetime[time]["Checklist"]["2 pairs of slippers?"]
ch14 = result1datetime[time]["Checklist"]["1 set of iron and board?"]
ch15 = result1datetime[time]["Checklist"]["Elsafe open or working?"]
ch16 = result1datetime[time]["Checklist"]["1 set of laundry list and bag?"]
ch17 = result1datetime[time]["Checklist"]["1 extra pillow with pillow cover?"]
#ch18 = result1datetime[time]["Checklist"]["Luggage bench fabric top is clean"]#DINING DRESS CODE
#ch19 = result1datetime[time]["Checklist"]["Luggage bench fabric top is clean"] #FLASHLIGHT
#LUGGAGE AND LUNCH BREAK
ch20 = result1datetime[time]["Checklist"]["Luggage bench fabric top is clean"]
# ch21 = result1datetime[time]["Checklist"]["Drawers – clean and dust-free"]
#MINIBAR
#ch22 = result1datetime[time]["Checklist"]["Luggage bench fabric top is clean"]#Arrangement of the items is neat & clean.
#ch23 = result1datetime[time]["Checklist"]["Luggage bench fabric top is clean"]#Ensure the items below are sufficient
ch24 = result1datetime[time]["Checklist"]["2 coke, 2 sprite, 1 C2 lemon, 1 C2 apple, 1 pineapple juice, 1 orange juice, 1 mineral water, 2 San Mig light, 2 pale pilsen?"]
ch25 = result1datetime[time]["Checklist"]["1 pringles, 1 cashew nut, 1 cup noodles (placed in the coffee tray on the writing desk)?"]
ch26 = result1datetime[time]["Checklist"]["Fridge is cold and clean"]
我有三个约会。 'currentdate'所以我遍布他们希望获得相同的输出,但其中三个具有不同的日期。这是我的firebase结构:
(https://i.stack.imgur.com/DfYSP.png)
但我只得到一个。当我使用代码的这一部分循环所有键时
for key in result1date.keys():
key = sorted(result1date.keys())
下面的内容应该遵循它。任何帮助表示赞赏。我想知道为什么会发生这种情况,希望是一个解决方案或建议。
我希望得到类似这样的输出:
[DATE 1 HERE with all the details within its branches]
[DATE 2 HERE with all the details within its branches]
[Date 3 HERE with all the details within its branches]
答案 0 :(得分:1)
这看起来不对:
for key in result1datetime.keys():
key = sorted(result1datetime.keys())[-2]
time = key
print time
您正在for
循环中遍历您的密钥,但是您总是在下一行(sorted(result1datetime.keys())[-2]
)中获得相同的密钥。
为什么首先添加该行?这样,你总是得到中间键(三分之一)。
也许您想要对返回的密钥进行排序(key = sorted(key)[-2]
)。您的结构图像显示的深度不足以了解该级别的预期结果。
无论如何,我建议你不要在循环中重用key
变量。这将使事情难以理解。请注意,问题是将其重置为您首先循环的相同迭代的固定元素。
答案 1 :(得分:0)
我对python或json并不熟悉所以这可能对你的情况不起作用,但我尽力建立这个,希望它可以提供一些帮助
如果Json文件具有固定的稳定结构,或者如果值的格式非常相似,我认为你可以这样做:
Json样本作为词典:
firebase_json = {
"Rooms": {
"Room1": {
"2017-11-29": {
"Status": ["unoccupied"],
"Inspection": ["yes"],
"Scan-in": ["no"],
"Scan-out": ["yes"]
},
"2017-12-05": {
"Status": ["occupied"],
"Inspection": ["no"],
"Scan-in": ["yes"],
"Scan-out": ["no"]
},
},
"Room2": {
"2017-11-02": {
"Status": ["unoccupied"],
"Inspection": ["yes"],
"Scan-in": ["no"],
"Scan-out": ["yes"]
},
"2017-12-01": {
"Status": ["occupied"],
"Inspection": ["no"],
"Scan-in": ["yes"],
"Scan-out": ["no"]
}
}
}}
样本选择
room = input("Room?",)
for a in firebase_json:
for b in firebase_json[a]:
if b != room: #select by given room.
continue
print(b)
for c in firebase_json[a][b]:
print(" ", c) # if selection by date add previous != statement here
for d in firebase_json[a][b][c]:
for e in firebase_json[a][b][c][d]:
print(" ", d, ":", e)
正如我所说的那样,可能有更好的方法。