用Python更新Evernote笔记

5 投票
1 回答
1191 浏览
提问于 2025-04-17 22:42

我正在尝试更新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 方法来保存更改。

撰写回答