我有一個任務列表,我試圖選擇具有給定ID的所有任務。Python - 爲什麼這個列表理解返回一個空列表?
# temp global tasks list
tasks = [
{
'id': 1,
'title': u'Buy groceries',
'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',
'done': False
},
{
'id': 2,
'title': u'Learn Python',
'description': u'Need to find a good Python tutorial on the web',
'done': False
}
]
# here I try to select some tasks. 'request.args.get('id')' is 2 in my test
selectedTasks = tasks
if 'id' in request.args:
selectedTasks = [task for task in selectedTasks if task['id'] == request.args.get('id')]
如果我運行這個,selectedTasks
是空的。但我不明白爲什麼。
我想打印一些值:
# just before the list comprehension
print(selectedTasks, file=sys.stderr)
print(request.args.get('id'), file=sys.stderr)
print(selectedTasks[1]['id'], file=sys.stderr)
此打印:
[{'id': 1, 'title': 'Buy groceries', 'description': 'Milk, Cheese, Pizza, Fruit, Tylenol', 'done': False}, {'id': 2, 'title': 'Learn Python', 'description': 'Need to find a good Python tutorial on the web', 'done': False}]
2
2
所以任務都在那裏,request.args.get('id')
是正確的,而第二個任務具有ID 2
。那麼爲什麼這不起作用呢?
是否有'2'或''2''? (一個字符串?) –
提供一些關於誰是「請求」的代碼,重要的是什麼類型的id。 –
@WillemVanOnsem哦,那可能吧! request.args是url參數。所以我從這個URL獲得ID:http://.../api/v1.0/tasks?id = 2。 –