Obtenir des informations sur les notes à l'aide du SDK Evernote pour Python 3

Aperçu

À propos du SDK Evernote pour Python 3

À ce stade (au 27 septembre 2020), il est encore expérimental et le SDK officiel pour Python ne prend pas en charge Python 3.

GitHub - evernote/evernote-sdk-python3: Testing the Evernote Cloud API for Python 3

This is a test SDK! The official Evernote SDK for Python doesn't support Python 3 yet; this repository is an experiment as we try to migrate.

This SDK contains wrapper code used to call the Evernote Cloud API from Python.

La référence de l'API peut être trouvée dans All Thrift declarations, mais ce n'est pas pour Python, vous voudrez peut-être aussi vérifier la partie pertinente du code source. ..

Installation de la bibliothèque

Installez le SDK Evernote pour Python 3.

$ pip install evernote3==1.25.14

oauth2 doit également être installé (car il n'est pas automatiquement installé en tant que dépendance).

$ pip install oauth2

Exemple de code pour obtenir des informations sur la note

from datetime import datetime, timezone, timedelta

#Utiliser le SDK Evernote pour Python 3
from evernote.api.client import EvernoteClient
from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec

# evernote.api.client.Initialiser EvernoteClient
client = EvernoteClient(
  token   = 'YOUR_AUTH_ACCESS_TOKEN', #Spécifiez le jeton d'accès
  sandbox = False #Spécifiez explicitement False lors de l'utilisation d'un environnement de production au lieu de Sandbox
)

# evernote.api.client.Obtenir le magasin
store = client.get_note_store()

#Cahier Evernote.edam.type.ttypes.Obtenez une liste de cahiers
notebook_list = store.listNotebooks()
print(f'Nombre de cahiers: {len(notebook_list)}')

# evernote.edam.type.ttypes.Sortez le cahier
for notebook in notebook_list:

  print(f'Nom du cahier: {notebook.name}')

  #Préciser les conditions pour les notes à acquérir
  filter = NoteFilter()
  filter.notebookGuid = notebook.guid #Spécifiez le GUID pour le bloc-notes

  #Définir les champs à inclure dans NoteMetadata
  spec = NotesMetadataResultSpec()
  spec.includeTitle      = True
  spec.includeCreated    = True
  spec.includeAttributes = True

  #Liste des métadonnées de note Evernote.edam.notestore.ttypes.Obtenir NotesMetadataList
  notes_metadata_list = store.findNotesMetadata(
    filter,
    0, #Spécifiez la position d'index que vous souhaitez obtenir dans la liste qui atteint la condition de décalage
    1, #maxNotes Le nombre maximum de notes à récupérer. Obtenez un seul au plus cette fois
    spec)

  print(f'Nombre de notes dans le carnet: {notes_metadata_list.totalNotes}')

  # evernote.edam.notestore.ttypes.Extraire NoteMetadata
  for note_meta_data in notes_metadata_list.notes:

    print(f'Titre de la note: {note_meta_data.title}')

    # evernote.edam.type.ttypes.Obtenir une note
    note = store.getNote(
      note_meta_data.guid, #Spécifier le GUID pour les notes
      True, # withContent
      True, # withResourcesData
      True, # withResourcesRecognition
      True) # withResourcesAlternateData
    print(f'Titre: {note.title}')
    print(f'Date et heure de création: {datetime.fromtimestamp(note.created / 1000, timezone(timedelta(hours=9)))}')
    print(f'Contenu(XHTML): {note.content[0:64]}') #Comme il est long, seuls les 64 premiers caractères sont supprimés

    #Extraire les informations du fichier multimédia intégrées ou jointes à un mémo
    if note.resources is not None:
      # evernote.edam.type.ttypes.Extraire la ressource
      for resource in note.resources:
        print(f'Nom du fichier de données joint: {resource.attributes.fileName}')
        print(f'Type de données: {resource.mime}')

Exemple d'exécution d'exemple

Enregistrez l'exemple de code sous my_notes.py et exécutez-le.

$ python my_notes.py
Nombre de cahiers: 4
Nom du cahier: Todoist
Nombre de notes dans le carnet: 6
Titre de la note: Completed Todoist Tasks
Titre: Completed Todoist Tasks
Date et heure de création: 2017-09-02 09:43:19+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "
Nom du cahier:Données vocales
Nombre de notes dans le carnet: 5
Titre de la note:Message sonore japonais
Titre:Message sonore japonais
Date et heure de création: 2016-08-14 20:03:58+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint:AIUEO.m4a
Type de données: audio/x-m4a
Nom du cahier: webclip
Nombre de notes dans le carnet: 2
Titre de la note:Page d'exemple
Titre:Page d'exemple
Date et heure de création: 2015-03-19 17:34:03+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint: None
Type de données: image/jpeg
Nom du fichier de données joint: None
Type de données: image/png
Nom du cahier:Stockage des données techniques
Nombre de notes dans le carnet: 15
Titre de la note:Matériel Hackason
Titre:Matériel Hackason
Date et heure de création: 2018-02-23 15:26:58+09:00
Contenu(XHTML): <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
Nom du fichier de données joint: IMG_2741.HEIC
Type de données: image/jpeg
Nom du fichier de données joint: IMG_2618.HEIC
Type de données: image/jpeg

Matériel de référence

Recommended Posts

Obtenir des informations sur les notes à l'aide du SDK Evernote pour Python 3
Remarque sur boto3 (AWS SDK for Python)
Script Python pour obtenir des informations de note avec REAPER
Informations d'identification utilisées par Boto3 (AWS SDK for Python)
Obtenir des informations GitHub à l'aide de PyGithub
Notes depuis 3 mois depuis que j'ai commencé Python
Obtenez des notes Evernote en Python
Obtenez des informations sur l'alambic avec Python
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Remarque Python: à propos de la comparaison en utilisant is
[TouchDesigner] Conseils pour la déclaration par python
[Python] Raison du remplacement à l'aide de super ()
[Python] Quatre-vingt-dix-neuf tables utilisant des instructions for
Remarque Python: obtenez le mois en cours
Obtenez des informations météorologiques avec Python et le grattage
Point 17 de la note Python efficace Respect de la certitude lors de l'utilisation d'itérateurs pour les arguments
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
Obtenez des informations sur la propriété en grattant avec python
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Python> dictionnaire> values ()> Obtenir toutes les valeurs à l'aide de values ()
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
[50 comptes] Transmission de clé à l'aide de Python pour Windows
Obtenir des métadonnées pour les tables existantes à l'aide de SQLAlchemy
Remarque pour Pyjulia appelant Julia depuis Python
[python, multitraitement] Comportement des exceptions lors de l'utilisation du multitraitement
Remarque: Python
Travailler avec OpenStack à l'aide du SDK Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Conseils pour utiliser python + caffe avec TSUBAME
[python] Obtenir la chronologie Twitter pour plusieurs utilisateurs
Obtenez un jeton pour conoha avec python
Note de Python
Remarques sur l'utilisation de python (pydev) avec eclipse
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Une note utile lors de l'utilisation de Python après une longue période
GUI affiche les informations de retard de train à l'aide de python
vprof - J'ai essayé d'utiliser le profileur pour Python
Python pour les super débutants Super débutants Python # Facile à éliminer
[Python] Obtenez tous les commentaires à l'aide de Youtube Data Api
Pandas Python: recherchez DataFrame à l'aide d'expressions régulières
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Pilote de périphérique pour obtenir des informations sur le processeur d'ARM
Recherche affinée des valeurs de race Pokemon à l'aide de Python
Remarque pour le formatage des nombres avec la fonction de format python
Gestion des informations secrètes avec le service de gestion de clés GCP + Python
Obtenir des informations sur les vidéos mises en ligne sur YouTube [Python]
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Obtenez des informations sur la carte BTC / JPY de Python --bitflyer
Faisons un module pour Python en utilisant SWIG
Appeler Polly à partir du kit SDK AWS pour Python
30/10/2016 else pour Python3> pour:
Remarque: décorateur Python
Note de programmation Python
[Python] Note d'apprentissage 1
Obtenez AccessToken pour le compte de service avec le SDK Firebase Admin Python
Note d'apprentissage Python_004
Commencez à utiliser Python
Note d'apprentissage Python_003