Skip to content

Instantly share code, notes, and snippets.

@davetroy
Created September 6, 2012 16:36
Show Gist options
  • Save davetroy/3658283 to your computer and use it in GitHub Desktop.
Save davetroy/3658283 to your computer and use it in GitHub Desktop.
Parse tweets into csv trails
require 'rubygems'
require 'time'
require 'yajl'
require 'yajl/json_gem'
require 'csv'
PARSER = Yajl::Parser.new
def add_point(s)
if s['geo']
lat = s['geo']['coordinates'][0]
lon = s['geo']['coordinates'][1]
elsif s['coordinates']
lat = s['coordinates']['coordinates'][1]
lon = s['coordinates']['coordinates'][0]
end
return unless lat && lon
ts = s['timestamp'] || Time.parse(s['created_at']).to_i
csv_tweet = [s['user']['screen_name'],ts,lat,lon].to_csv
puts csv_tweet
end
PARSER.on_parse_complete = method(:add_point)
Dir["data/2012*.json"].each do |file|
PARSER.parse(File.read(file))
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment