-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathusers.py
56 lines (48 loc) · 1.34 KB
/
users.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#! /usr/bin/env python
"""
@author: dell
"""
import csv
import cPickle as pickle
# global variables
user_dict = {}
def get_int_attr(attr):
if attr:
return int(attr)
else:
return -1
def get_flt_attr(attr):
if attr:
return float(attr)
else:
return -1.0
def read_users(csv_filename):
csv_file = open(csv_filename, 'rb')
reader = csv.reader(csv_file)
reader.next() # ignore header
for row in reader:
respid = int(row[0])
user = {}
user['gender'] = get_int_attr(row[1])
user['age'] = get_int_attr(row[2])
user['working'] = get_int_attr(row[3])
user['region'] = get_int_attr(row[4])
user['music'] = get_int_attr(row[5])
user['list_own'] = get_flt_attr(row[6])
user['list_back'] = get_flt_attr(row[7])
for j in range(19):
user['q%d' % (j+1)] = get_flt_attr(row[8+j])
user_dict[respid] = user
csv_file.close()
def load_users(pkl_filename):
global user_dict
pkl_file = open(pkl_filename, 'rb')
user_dict = pickle.load(pkl_file)
pkl_file.close()
def save_users(pkl_filename):
pkl_file = open(pkl_filename, 'wb')
pickle.dump(user_dict, pkl_file, -1)
pkl_file.close()
if __name__ == "__main__":
read_users('data/users.csv')
save_users('data/users.pkl')