数据背景:2011年, URL缩短服务Bitly跟美国政府⽹站USA.gov合作,提供了⼀份从⽣成.gov或.mil短链接的⽤户那⾥收集来的匿名数据。在2011年, 除实时数据之外, 还可以下载⽂本⽂件形式的每⼩时快照。2017年这项服务已经关闭。
以每⼩时快照为例, ⽂件中各⾏的格式为JSON(即JavaScriptObject Notation, 这是⼀种常⽤的Web数据格式)。
我们取一行数据进行格式化之后分析:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 { "a" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11" , "c" : "US" , "nk" : 1 , "tz" : "America/New_York" , "gr" : "MA" , "g" : "A6qOVH" , "h" : "wfLQtf" , "l" : "orofrog" , "al" : "en-US,en;q=0.8" , "hh" : "1.usa.gov" , "r" : "http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf" , "u" : "http://www.ncbi.nlm.nih.gov/pubmed/22415991" , "t" : 1331923247 , "hc" : 1331822918 , "cy" : "Danvers" , "ll" : [ 42.576698 , -70.954903 ] }
这是其中的一行数据, 我们可以通过 Python 的 JSON 模块来处理
1 2 3 4 5 6 7 8 import jsonPATH = 'datasets/bitly_usagov/example.txt' records = [json.loads(line) for line in open (PATH)] print (records[0 ])
{'a': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11', 'c': 'US', 'nk': 1, 'tz': 'America/New_York', 'gr': 'MA', 'g': 'A6qOVH', 'h': 'wfLQtf', 'l': 'orofrog', 'al': 'en-US,en;q=0.8', 'hh': '1.usa.gov', 'r': 'http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf', 'u': 'http://www.ncbi.nlm.nih.gov/pubmed/22415991', 't': 1331923247, 'hc': 1331822918, 'cy': 'Danvers', 'll': [42.576698, -70.954903]}
时区统计
纯 python