Wunderlistから抽出されたタスクとそのメタデータを含む辞書リスト(大規模なリスト)があります。リストの名前はtasktotal
です。リスト内のこれらの辞書は、次のようになります。Python:辞書のリスト内の日付と日付の比較
{'due_date': '2016-11-30', 'created_by_request_id': 'RqID:RqIDKey', 'type': 'task', 'title': 'This is a task ', 'completed': False, 'id': MYID, 'created_by_id': MYID, 'created_at': '2016-10-14T11:11:52.916Z', 'revision': 2, 'starred': False, 'list_id': MYLISTID}
私は
datetime
を使用して現在の日付に「DUE_DATE」の値を比較したいと思います
:dictinaryは今日または前日によるものであれば
date_today = datetime.datetime.now().date()
今日、私はこの辞書から 'タイトル'の値を返したいと思います。私は最も簡単な方法は今日のすべてのエントリを持つ新しい辞書を作成し、次に彼らの 'タイトル'の値を取得することであると考えた。だから私は、この検索機能を作った:
def search(i):
return [element for element in i if element[datetime.strptime('due_date')] >= date_today]
私は私のtasktotal
リストにこの検索を実行するとしかし、私は何も返されません取得します。
print(search(tasktotal))
[]
Process finished with exit code 0
ここで間違っていることを理解できません。または、私が必要とする値を検索するためのもう1つの効率的な方法がありますか?
EDIT 1:
私は@Peterによるソリューションをしようとすると、私はこのエラーを取得:
return [element['title'] for element in i if date_convert(element['due_date']) >= current_time]
KeyError: 'due_date
EDIT 2: 私は私のブラケットを切り替えると、@James Kのような@RichSmithさんが示唆したように、私はこのエラーが発生します
return [element for element in i if datetime.strptime(element['due_date'], "%Y-%m-%d") >= date_today]
TypeError: can't compare datetime.datetime to datetime.date
各回答には、その回答の特定のメッセージを使って直接返信することができます。 –
申し訳ありません、ここではかなり新しい、チップのおかげで! –