1

我是一个 Python 新手,我正在编写一段代码来收集来自两个邻居的推文,将它们保存为 JSON 格式并绘制一些数据。您对如何提取推文日期和时间或如何计算邻居的推文数量有任何建议吗?换句话说,将带有 JSON 数据的 .txt 的不同变量隔离到可绘制的东西中的最佳方法是什么?

非常感谢!

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)
4

1 回答 1

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()
]
于 2013-10-01T21:15:23.277 回答