[PYTHON] À propos de la gestion des erreurs Tweepy

introduction

Quand je frappe l'API Twitter, j'utilise tweepy parce que c'est facile, La gestion des erreurs est étonnamment difficile.

Je l'utilise assez souvent, donc je vais le laisser comme mémo.

À propos de la gestion des erreurs de tweepy

Lorsque vous recevez beaucoup de tweets en boucle

Je veux juste ramener cette différence.

Donc, en gros, je fais ce qui suit: ↓

import datetime
import time
import tweepy

while True:
		try:
			data = api.search(...)
			break
		except tweepy.TweepError as e:
			print(e)
			if e.reason == "[{'message': 'Rate limit exceeded', 'code': 88}]":
				print('Erreur: attendez 15 minutes')
                #Affiche l'heure à laquelle le traitement s'est arrêté même s'il a attendu 15 minutes.
				print(datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
				time.sleep(60 * 15)
			else:
				break

Addendum

Ce serait bien si ce type de traitement suffisait, Il semble qu'il y avait un moyen de le spécifier officiellement. http://docs.tweepy.org/en/latest/api.html Je vous l'ai dit dans la section des commentaires. Merci beaucoup.

Point de trébuchement

** e ** était déroutant.

print(e)

[{'message': 'Rate limit exceeded', 'code': 88}]

D'après le résultat, cela ressemble à un tableau associatif à première vue.


** Mais ce n'était pas le cas. ** **

print(e.reason)
print(str(e.reason))

[{'message': 'Rate limit exceeded', 'code': 88}]
<class 'str'>

e.reason était une chaîne! Autrement dit, la chaîne [{'message': 'Limite de débit dépassée', 'code': 88}]!


Voilà pourquoi

if e.reason == "[{'message': 'Rate limit exceeded', 'code': 88}]":
    ...

Il s'agit d'un traitement tel que.

Je suis ravi de vous aider.

Recommended Posts

À propos de la gestion des erreurs Tweepy
À propos de FastAPI ~ Gestion des erreurs de point de terminaison ~
Gestion des erreurs de trame principale
Gestion des erreurs Python
Gestion des erreurs SikuliX
django.db.migrations.exceptions.InconsistentMigrationHistory Gestion des erreurs
Python, à propos de la gestion des exceptions
Gestion des erreurs dans PythonBox
Gestion des erreurs GraphQL (gqlgen)
Autour de la gestion des erreurs de feedparser
[Contre-mesures d'erreur] Gestion des erreurs d'installation de django-heroku
Réponse aux erreurs lors de l'installation de mecab-python
Traitement des données 3 (développement) À propos du format des données
Mémorandum de gestion des erreurs de construction PyCUDA
A propos de la gestion des fichiers statiques Django
Erreur divisée par 0 Gestion de ZeroDivisionError
Gestion des erreurs lors de la mise à jour de Fish shell
À propos de l'erreur d'importation de PyQt5.QtWidgets (Anaconda)
Gestion des erreurs lors de la migration de Django'DIRS ': [BASE_DIR /' templates ']