web-dev-qa-db-ja.com

Tweepy StatusオブジェクトをJSONに変換する

Tweepy を使用してツイートをダウンロードしています。実際のStatusオブジェクトをテキスト形式でファイルに書き込むプログラムがあります。これをJSONに変換したり、このオブジェクトをPythonにインポートしたりするにはどうすればよいですか? JSONライブラリを使用してエンコードしようとしましたが、StatusはJSONシリアル化できません。

35
KOM

Tweepy自体のStatusオブジェクトはJSONシリアル化できませんが、_json JSONシリアル化可能な応答データを含むプロパティ。例えば:

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

これを行うためのより良い方法は、Tweepyパーサーを使用することです。あまり文書化されていません- Tweepy APIリファレンス を参照してください-しかし、それはパブリックAPIであり、_jsonプロパティを使用するよりもはるかに安全です。

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はjsonオブジェクトになりました。

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

オブジェクトに_jsonがある場合は、json.dumps(users[0]._json)を使用します。ユーザーは単なる例です。

0
Belloz