我使用基于這個問題的第一個答案的代碼使用 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 & #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)
并修改相關后續代碼。這應該可以解決您的問題
添加回答
舉報
0/150
提交
取消