[英]How to search value and append from a Json Format from a List of Dictionary of List of Dictionary
我從 API 中檢索了這些數據以獲取疫苗信息,並且我正在嘗試構建一個自動電報機器人。 但問題是我無法從 API 的以下響應中提取數據。 回應是:-
{
"centers": [{
"center_id":
7964,
"name":
"MCW Vishwakarma Park PHC",
"address":
"HEALTH CENTRE VISHWAKARMA PARK, NEAR MCD PRIMARY SCHOOL, KRISHAN KUNJ",
"state_name":
"Delhi",
"district_name":
"East Delhi",
"block_name":
"Not Applicable",
"pincode":
110092,
"lat":
28,
"long":
77,
"from":
"09:00:00",
"to":
"17:00:00",
"fee_type":
"Free",
"sessions": [{
"session_id":
"2f812c88-114e-4fea-8a86-3ddc44c9145a",
"date":
"20-05-2021",
"available_capacity":
0,
"min_age_limit":
45,
"vaccine":
"COVAXIN",
"slots": [
"09:00AM-11:00AM", "11:00AM-01:00PM", "01:00PM-03:00PM",
"03:00PM-05:00PM"
],
"available_capacity_dose1":
10,
"available_capacity_dose2":
0
}, {
"session_id":
"1c0bc496-7264-4518-b82e-8786a11a398a",
"date":
"22-05-2021",
"available_capacity":
0,
"min_age_limit":
45,
"vaccine":
"COVAXIN",
"slots": [
"09:00AM-11:00AM", "11:00AM-01:00PM", "01:00PM-03:00PM",
"03:00PM-05:00PM"
],
"available_capacity_dose1":
0,
"available_capacity_dose2":
20
}, {
"session_id":
"e388e00b-68a1-49df-ac63-bc63a8e4726e",
"date":
"24-05-2021",
"available_capacity":
0,
"min_age_limit":
45,
"vaccine":
"COVAXIN",
"slots": [
"09:00AM-11:00AM", "11:00AM-01:00PM", "01:00PM-03:00PM",
"03:00PM-05:00PM"
],
"available_capacity_dose1":
0,
"available_capacity_dose2":
0
}, {
"session_id":
"1cd3e0c8-86a6-4786-8426-c95d0da46ab4",
"date":
"25-05-2021",
"available_capacity":
0,
"min_age_limit":
45,
"vaccine":
"COVAXIN",
"slots": [
"09:00AM-11:00AM", "11:00AM-01:00PM", "01:00PM-03:00PM",
"03:00PM-05:00PM"
],
"available_capacity_dose1":
21,
"available_capacity_dose2":
0
}]
}
]
}
如何使用available_capacity_dose1 > 0 or available_capacity_dose2 > 0
提取數據並使用鍵作為日期對其進行排序。
我嘗試使用filter()
執行此操作,但我將整個列表作為 output 而不是具有不同日期的單個會話。
要獲得其中一個劑量大於零的會話,您可以執行以下操作
out = []
for center in data['centers']:
for session in center['sessions']:
if session['available_capacity_dose1'] > 0 or session['available_capacity_dose2'] > 0:
out.append(session)
print(out)
注意:這會遺漏有關中心的任何信息,如果您有多個中心,您可能希望保留這些信息。 添加該信息的一種非常粗略的方法是將out.append(session)
替換為if
語句中的以下內容
tmp = dict(session)
tmp['center_id'] = center['center_id']
out.append(tmp)
最后,要對數據進行排序,您可以執行以下操作
s_out = sorted(out, key=lambda x: x['date'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.