Python有许多内置或者第三方的模块可以将字符串转换成python的字典对象。这里我们将使用json模块以及其load函数进行逐行加载数据文件:
import json
path = './Python Data Analysis Example_1.txt'
records = [json.loads(line) for line in open(path)]
print(records[0])
还有一个与之目的一致的代码,但是更容易解读。
import json
path = './Python Data Analysis Example_1.txt'
text = open(path).readline()
jsontext = json.loads(text)
print(jsontext)
输出结果:
{'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]}
现在我们基于第一个程序进行下面的学习。现在records对象就称为了一组python字典了。现在只要以字符串形式给出想要造访的key就可以得到相应的值了:
print(records[0]['tz'])
输出结果:
America/New_York
假如想要知道该数据集中最常出现的是那个时区,我们可以用列表推导式取出一组10个地区的时区:
time_zones = [rec['tz'] for rec in records if 'tz' in rec]
print(time_zones[:10])
输出结果:
['America/New_York', 'America/Denver', 'America/New_York', 'America/Sao_Paulo', 'America/New_York', 'America/New_York', 'Europe/Warsaw', '', '', '']
我们发现最后三个时区是空。虽然可以过滤掉,但是先保留。
NEXT。。。


-
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
-
- xiaomiking
-
1147 发帖6357 回复18609 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖