2015-12-14 57 views
0

幾個月前,我開始從twitter獲取Tweets進行數據分析項目。我使用Tweepy和python3.3來獲取狀態對象並將它們轉儲到一個文件,每天一個文件。從File加載`status`對象?

我大多這樣做,因爲我只是想快速收集數據,但我面臨這樣的問題:因爲狀態對象現在是字符串

,我無法將它們轉換回用tweepy - 據我可以告訴 - 通過從我的文件中加載它們。

這很糟糕,因爲我現在意識到我真的只需要對象的status._json部分。無論出於什麼原因,我在三個月前都認爲不是。

我的問題是這樣的:

有從字符串轉換這些status對象後面的一個已知的方法是什麼?

我檢查了Tweepy docs和google搜索,我很確定這是不可能通過給定的工具。

我能看到的唯一選擇是手動分割字符串,這看起來很醜。

實施例保存在我的文件中的狀態對象的
pastebin

這些存儲每行中,每個新的被從Twitter抓起時間他們簡單地附加到該文件。

+1

你能舉一個例子說明這些文件的外觀嗎?你是如何拯救他們的? –

+0

我已經將它添加爲pastebin鏈接 - 行很長。他們被保存下來,只需使用'open(file,'a')'選項將它們寫入文件。 – nlsdfnbch

+0

也許你可以嘗試在它們上運行'eval',之後從Tweepy導入相關的類,模塊? –

回答

1

這不是您期待的答案,但可能會給出一個起點。

我花了一個實例,你Status紀錄,把它放在一個text file,並運行此腳本:

# coding: utf-8 

with open('status.txt') as f: 
    tco = f.read() 

import re 
re.compile("(?P<key>\w+)=(?P<value>\w+)") 
expre = re.compile("(?P<key>\w+)=(?P<value>\w+)") 
pairs = dict(re.findall(expre, tco)) 

這給你的東西是這樣的:

{'author': 'User', 
'contributors': 'None', 
'contributors_enabled': 'False', 
'coordinates': 'None', 
'created_at': 'datetime', 
'default_profile': 'True', 
'default_profile_image': 'False', 
'favorite_count': '0', 
'favorited': 'False', 
'favourites_count': '46', 
'follow_request_sent': 'None', 
'followers_count': '204', 
'following': 'False', 
'friends_count': '274', 
'geo': 'None', 
'geo_enabled': 'True', 
'id': '652242063048724480', 
'in_reply_to_screen_name': 'None', 
'in_reply_to_status_id': 'None', 
'in_reply_to_status_id_str': 'None', 
'in_reply_to_user_id': 'None', 
'in_reply_to_user_id_str': 'None', 
'is_quote_status': 'False', 
'is_translator': 'False', 
'listed_count': '91', 
'location': 'None', 
'notifications': 'None', 
'place': 'None', 
'possibly_sensitive': 'False', 
'profile_background_tile': 'False', 
'profile_use_background_image': 'True', 
'protected': 'False', 
'retweet_count': '0', 
'retweeted': 'False', 
'statuses_count': '9724', 
'truncated': 'False', 
'user': 'User', 
'utc_offset': '7200', 
'verified': 'False'} 

現在很明顯,這缺少很多我簡單的正則表達式無法解析的信息。例如,User對象屬性。一些json dicts也。

對於更復雜的問題,我們建議您查看parser模塊。我會在空閒時間看到我能做些什麼來解決這個問題。看起來像一個很好的問題。

+0

事實上,我期望有人會建議使用正則表達式,但是指向「parser」模塊的指針有幫助。隊友的歡呼聲! – nlsdfnbch

+0

很高興這是有益的。 –