用Python更新Evernote笔记
我正在尝试更新Evernote中的一条笔记。
我设置了一个过滤器,获取了笔记列表,也可以更改笔记的标题。
但是当我尝试更改笔记内容时,什么也没有发生。
from evernote.api.client import EvernoteClient
import evernote.edam.type.ttypes as Types
from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec
client = EvernoteClient(token="xxxxx", sandbox=True)
note_store = client.get_note_store()
updated_filter = NoteFilter(words='abaco')
result_list = note_store.findNotesMetadata(updated_filter, 0, 10000, NotesMetadataResultSpec(includeTitle=True))
for note in result_list.notes:
print "----- TITLE -----\n%s\n----- GUID -----\n%s\n----- CONTENT -----\n%s" % (note.title, note.guid, note_store.getNoteContent(note.guid))
note.title = "pippo"
note.guid = note.guid
note.content = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">'
note.content += '<en-note>Note updated</en-note>'
note = note_store.updateNote(note)
我没有收到任何错误信息,但笔记并没有更新。
我使用的是Python 2.7。
提前谢谢你们!
1 个回答
3
调用 NoteStore#findNotesMetadata 这个方法时,它会返回一个叫做 NotesMetadataList 的东西,这里面包含了一些 NoteMetadata,而不是 Note 对象。如果你想更新笔记,首先要调用 NoteStore#getNote 方法,获取到笔记后再修改需要更新的内容,最后调用 NoteStore#updateNote 方法来保存更改。