2017-05-31 19 views
0

これは私のノートブックとノートをリストするためのコードです。私は今、各ノートに関連付けられたタグを一覧表示しようとしています。助けてもらえますか?ありがとう。Evernote Python API - ノート用タグのリストを取得するにはどうすればよいですか?

from evernote.api.client import EvernoteClient 
from evernote.edam.notestore import NoteStore 

dev_token = "dev_token" 
client = EvernoteClient(token=dev_token) 
userStore = client.get_user_store() 

user = userStore.getUser() 
print 
print user.username 
print 

noteStore = client.get_note_store() 
notebooks = noteStore.listNotebooks() 

for n in notebooks: 
    print "Notebook = " + n.name + " GUID = " + n.guid 

    filter = NoteStore.NoteFilter() 
    filter.ascending = False 
    filter.notebookGuid=n.guid 

    spec = NoteStore.NotesMetadataResultSpec() 
    spec.includeTitle = True 
    spec.includeNotebookGuid = True 
    spec.includeTagGuids = True 

    ourNoteList = noteStore.findNotesMetadata(filter, 0, 25, spec) 
    for note in ourNoteList.notes: 
     print "%s :: %s" % (note.title, note.guid) 
    print 
+0

ようこそ。この[よくある質問] (http://stackoverflow.com/help/how-to-ask)を読んでそこのガイドラインに従って、問題を説明して再現するのに十分な情報で質問を改善してください。 – thewaywewere

答えて

0

あなたはspec.includeTagGuids = TrueNoteStore#findNotesMetadataを呼び出すと、返さNoteMetadataはノートに関連付けられたタグのGUIDのリストが含まれます。

spec = NoteStore.NotesMetadataResultSpec() 
spec.includeTagGuids = True 

notesMetadataList = noteStore.findNotesMetadata(filter, 0, 25, spec) 
for noteMetadata in notesMetadataList.notes: 
    for tagGuid in noteMetadata.tagGuids 
     tag = noteStore.getTag(tagGuid) 

か、あなただけのタグの名前をしたい場合、あなたはNoteStore#getNoteTagNamesを使用することができます。

notesMetadataList = noteStore.findNotesMetadata(filter, 0, 25, spec) 
for noteMetadata in notesMetadataList.notes: 
    tagNames = noteStore.getNoteTagNames(noteMetadata.guid) 

しかし、あなたは、ループ内でNoteStore#getTagを毎回呼び出す必要はありませんように、最初にNoteStore#listTagsを呼び出し、タグにタグのGUIDから辞書を作成する方が良いだろう。

+0

これは完璧です、ありがとうございます。それはサンドボックス環境で働いています。私は生産用の開発者トークンを取得しましたが、今では例外が発生します。プロダクショントークンを使用してコードをプッシュするときに、私が必要とすることと異なるものがあるかどうかを知っていますか? – eenewbie

+0

それを考え出した。 'client = EvernoteClient(token = dev_token、sandbox = False)'を使用する必要があります – eenewbie

関連する問題