web-dev-qa-db-fra.com

Convertir l'objet d'état Tweepy en JSON

J'utilise Tweepy pour télécharger les tweets. J'ai un programme qui écrit ensuite l'objet Status réel dans un fichier sous forme de texte. Comment traduire cela en JSON ou réimporter cet objet en Python? J'ai essayé d'utiliser la bibliothèque JSON pour coder, mais Status n'est pas sérialisable JSON.

35
KOM

L'objet Status de tweepy lui-même n'est pas sérialisable JSON, mais il a un _json propriété qui contient des données de réponse sérialisables JSON. Par exemple:

>>> status_list = api.user_timeline(user_handler)
>>> status = status_list[0]
>>> json_str = json.dumps(status._json)
81
taskinoor

Une meilleure façon de procéder consiste à utiliser un analyseur tweepy. Ce n'est pas très bien documenté - voir la référence de l'API Tweepy - mais c'est une API publique, bien plus sûre que d'utiliser le _json propriété.

import tweepy
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth, parser=tweepy.parsers.JSONParser())
status = api.user_timeline(user=username, count=1)[0]
json.dumps(status)

status est maintenant un objet json.

6
Greg
users = api.search_users('TimHortons', 1)
print(json.dumps(users[0]._json))

Utilisez json.dumps(users[0]._json) si l'objet a _json. Les utilisateurs n'étaient qu'un exemple.

0
Belloz