2013-10-01 23 views
1

我是一個Python新手,我正在寫一段代碼來收集來自兩個鄰居的推文,將它們保存爲JSON格式並繪製一些數據。你有關於如何提取推文日期和時間,或者如何計算鄰居推文數量的建議?換句話說,用JSON數據將一個.txt的不同變量分離成可繪製的東西的最佳方法是什麼?如何保存和處理在Python中保存爲JSON的推文

非常感謝!

from twitter import * 

import sys 
import os.path 
import simplejson as json 
import tweepy 
import csv 

#log into Twitter 
OAUTH_TOKEN = 'XXX' 
OAUTH_SECRET = 'XXX' 
CONSUMER_KEY = 'XXX' 
CONSUMER_SECRET = 'XXX' 

t = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET)) 
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 

#I consider A to be a 2km radius circle 
result_A = t.search.tweets(query="kaffe",geocode="55.662610,12.604074,1.24mi",result_type='recent') 
with open('data_A.txt', 'w') as outfile: 
    json.dump(result_A, outfile) 

#Similarly, B is a 2km radius circle 
result_B = t.search.tweets(query="kaffe",geocode="55.694700,12.548283,1.24mi",result_type='recent') 
with open('data_B.txt', 'w') as outfile: 
    json.dump(result_B, outfile) 
+0

您可能需要提供一個例子鳴叫,所以我們可以評估其格式 – Talvalin

+0

爲什麼CSV?所以你可以在Excel中處理它? (假設你的意思是CSV而不是CVS,它只是一個錯字) –

+0

嗨Talvalin,這裏是file_A:https://dl.dropboxusercontent.com/u/2684973/data_A.txt –

回答

0

如果您需要在Python更高級的電子表格功能,你可能想看看http://manns.github.io/pyspread/

此外,SQLite3內置爲sqlite3模塊:只需創建內存數據庫和SQL即可。

然而,這裏是關於如何在純Python做基本的東西,一些例子:

import json 
import urllib 
from datetime import datetime 

data = urllib.urlopen('https://dl.dropboxusercontent.com/u/2684973/data_A.txt').read() 
data = json.loads(data) 

tweets = data['statuses'] 

def parse_created(timestamp): 
    _, m, d, t, _, y = timestamp.split(' ') 
    return datetime.strptime('%s %s %s %s' % (m, d, t, y), '%b %d %H:%M:%S %Y') 

tweets_data = [(x['user']['name'], x['text'], parse_created(x['created_at'])) 
       for x in tweets] 

tweets_data現在包含這些列的「表」,如果你需要它這樣的格式(例如,用於繪圖) ;或:

erik_tweets = [x for x in tweets 
       if x['user']['name'] == 'Erik Allik'] 

或:

erik_tweets_before_today = [ 
    x for x in tweets 
    if x['user']['name'] == 'Erik Allik' 
    and x['created_at'].date() < datetime.date.today() 
] 
+0

謝謝!用我可以繪製的格式轉換時間的最佳方法是什麼?現在,如果我打印tweets_data [2]我得到datetime.datetime(2013,10,2,7,41,35) –

+0

這是一個'datetime'對象;如果你想將它轉換爲字符串,請使用'strftime'方法:http://docs.python.org/2/library/datetime.html –

+0

太好了!最後一件事:我如何訪問tweets_data中的時間列?如果我輸入print tweets_data [:,2]我得到「TypeError:列表索引必須是整數,而不是元組」。 –