7 #shameless copy paste from json/decoder.py
8 FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
9 WHITESPACE = re.compile(r'[ \t\n\r]*', FLAGS)
11 class ConcatJSONDecoder(json.JSONDecoder):
12 def decode(self, s, _w=WHITESPACE.match):
18 obj, end = self.raw_decode(s, idx=_w(s, end).end())
19 end = _w(s, end).end()
23 def print_json_file(filename):
24 events = json.loads(os.popen("zcat "+ filename).read(), cls=ConcatJSONDecoder)
27 # remove events which are not done to repositories
28 if event['type'] in ["GistEvent"]:
32 ev['actor'] = event['actor']
33 ev['type'] = event['type']
34 ev['date'] = event['created_at']
35 ev['url'] = event['url']
38 if event.has_key('repository'):
39 ev['repo.name'] = event['repository']['name']
40 ev['repo.owner'] = event['repository']['owner']
41 ev['repo.watchers'] = str(event['repository']['watchers'])
42 ev['repo.forks'] = str(event['repository']['forks'])
46 ev['repo.watchers'] = ""
49 # print event # debug code
50 print u"\t".join([ev['actor'],
57 ev['repo.forks']]).encode("utf8")
59 print "\t".join(["actor", "type", "date", "url", "name", "repo.owner",
60 "repo.watchers", "repo.forks"])
62 for filename in os.listdir("data/"):
63 print_json_file("data/" + filename)