为了账号安全,请及时绑定邮箱和手机立即绑定

如何解压 tweepy 提供的 JSON

如何解压 tweepy 提供的 JSON

弑天下 2023-01-04 14:21:14
我使用基于这个问题的第一个答案的代码使用 tweepy 抓取推文,如下所示consumer_key = ""consumer_secret = ""access_token = ""access_token_secret = ""import tweepyauth = tweepy.OAuthHandler(consumer_key, consumer_secret)auth.set_access_token(access_token, access_token_secret)api = tweepy.API(auth,wait_on_rate_limit=True)query = 'kubernetes'max_tweets = 200searched_tweets = []last_id = -1while len(searched_tweets) < max_tweets:    count = max_tweets - len(searched_tweets)    try:        new_tweets = api.search(q=query, count=count, max_id=str(last_id - 1))        if not new_tweets:            break        searched_tweets.extend(new_tweets)        last_id = new_tweets[-1].id    except tweepy.TweepError as e:        break它提供了一个 json 对象的列表,例如searched_tweets[2] 输出(截断)Status(_api=<tweepy.api.API object at 0x7fc13dbab828>, _json={'created_at': 'Wed Jun 10 14:06:51 +0000 2020', 'id': 1270719075388280834, 'id_str': '1270719075388280834', 'text': "RT @CDWGWAGov: According to @IBM's new CEO, #hybridcloud &amp; #AI are the two dominant forces driving #digitaltransformation #Kubernetes #IoT…", 'truncated': False,我需要创建日期和推文文本,所以我使用以下代码来提取它们for tweet in searched_tweets:  new_tweet = json.dumps(tweet)  dct = json.loads(new_tweet._json)  created_at=dct['created_at']  txt=dct['text']但它正在给予TypeError: Object of type 'Status' is not JSON serializable我已经尝试过这个解决方案来解决这个错误,api = tweepy.API(auth, parser=tweepy.parsers.JSONParser())我KeyError: -1 已经在 stackoverflow 上尝试了几乎所有其他解决方案,但对我没有任何帮助。有人可以帮我解压 json 并获得这两个值吗?谢谢
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

tweepy的Status对象本身是不可JSON序列化的,但是它有一个_json属性可以JSON序列化


例如


status_list = api.user_timeline(user_handler)

status = status_list[0]

json_str = json.dumps(status._json)

我怀疑错误是由 new_tweet = json.dumps(tweet)这里的这一行引起的,所以只需调用_json这一行的属性


new_tweet = json.dumps(tweet._json)

并修改相关后续代码。这应该可以解决您的问题


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信