回答編集履歴
2
追記
test
CHANGED
@@ -111,3 +111,71 @@
|
|
111
111
|
`large_item`は仕様が分からなかったのでスルーしてます。
|
112
112
|
|
113
113
|
xlrdは初めて使ったので、慣習などは知りません。ご容赦ください。
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
---
|
118
|
+
|
119
|
+
いい練習になると思って、ジェネレータを使ってみた。
|
120
|
+
|
121
|
+
```Python
|
122
|
+
|
123
|
+
import xlrd
|
124
|
+
|
125
|
+
from pprint import pprint
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
def try_to_int(arg):
|
130
|
+
|
131
|
+
try:
|
132
|
+
|
133
|
+
return int(arg)
|
134
|
+
|
135
|
+
except:
|
136
|
+
|
137
|
+
return arg
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
def read_all_row(worksheet, left_up=(0, 0)):
|
142
|
+
|
143
|
+
for i in range(left_up[0], worksheet.nrows):
|
144
|
+
|
145
|
+
ret_list = worksheet.row_values(i)[left_up[1]:]
|
146
|
+
|
147
|
+
yield list(map(try_to_int, ret_list))
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
def main():
|
152
|
+
|
153
|
+
book3 = xlrd.open_workbook('./data/excel.xlsx')
|
154
|
+
|
155
|
+
sheet3 = book3.sheet_by_index(0)
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
data_dict = {}
|
160
|
+
|
161
|
+
tag_list = sheet3.row_values(0)[1:]
|
162
|
+
|
163
|
+
for i, row in enumerate(read_all_row(sheet3, left_up=(1, 1))):
|
164
|
+
|
165
|
+
data_dict[i] = dict(zip(tag_list, row))
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
pprint(data_dict)
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
if __name__ == '__main__':
|
174
|
+
|
175
|
+
main()
|
176
|
+
|
177
|
+
```
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
なんかすっきりしない。ラッパークラスを作った方がいいのかもしれない。
|
1
追記
test
CHANGED
@@ -8,31 +8,53 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
|
11
|
+
def try_to_int(arg):
|
12
12
|
|
13
|
+
try:
|
14
|
+
|
13
|
-
|
15
|
+
return int(arg)
|
16
|
+
|
17
|
+
except:
|
18
|
+
|
19
|
+
return arg
|
14
20
|
|
15
21
|
|
16
22
|
|
17
|
-
da
|
23
|
+
def main():
|
18
24
|
|
19
|
-
|
25
|
+
book3 = xlrd.open_workbook('./data/excel.xlsx')
|
20
26
|
|
21
|
-
for row_index in range(1, sheet3.nrows):
|
22
|
-
|
23
|
-
|
27
|
+
sheet3 = book3.sheet_by_index(0)
|
24
|
-
|
25
|
-
data_dict[row_index] = dict(zip(tag_list, row))
|
26
28
|
|
27
29
|
|
28
30
|
|
31
|
+
data_dict = {}
|
32
|
+
|
33
|
+
tag_list = sheet3.row_values(0)[1:]
|
34
|
+
|
35
|
+
for row_index in range(1, sheet3.nrows):
|
36
|
+
|
37
|
+
row = sheet3.row_values(row_index)[1:]
|
38
|
+
|
39
|
+
row = list(map(try_to_int, row))
|
40
|
+
|
41
|
+
data_dict[row_index] = dict(zip(tag_list, row))
|
42
|
+
|
43
|
+
|
44
|
+
|
29
|
-
pprint(data_dict)
|
45
|
+
pprint(data_dict)
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
if __name__ == '__main__':
|
50
|
+
|
51
|
+
main()
|
30
52
|
|
31
53
|
|
32
54
|
|
33
55
|
"""出力
|
34
56
|
|
35
|
-
{1: {'age': 40
|
57
|
+
{1: {'age': 40,
|
36
58
|
|
37
59
|
'empleyee': 'leader',
|
38
60
|
|
@@ -40,11 +62,11 @@
|
|
40
62
|
|
41
63
|
'name': 'Blear',
|
42
64
|
|
43
|
-
'name_id': 1
|
65
|
+
'name_id': 1,
|
44
66
|
|
45
|
-
'user_id': 1
|
67
|
+
'user_id': 1},
|
46
68
|
|
47
|
-
2: {'age': 23
|
69
|
+
2: {'age': 23,
|
48
70
|
|
49
71
|
'empleyee': 'others',
|
50
72
|
|
@@ -52,11 +74,11 @@
|
|
52
74
|
|
53
75
|
'name': 'Tom',
|
54
76
|
|
55
|
-
'name_id': 5
|
77
|
+
'name_id': 5,
|
56
78
|
|
57
|
-
'user_id': 2
|
79
|
+
'user_id': 2},
|
58
80
|
|
59
|
-
3: {'age': 52
|
81
|
+
3: {'age': 52,
|
60
82
|
|
61
83
|
'empleyee': 'manager',
|
62
84
|
|
@@ -64,9 +86,9 @@
|
|
64
86
|
|
65
87
|
'name': 'Rose',
|
66
88
|
|
67
|
-
'name_id': 9
|
89
|
+
'name_id': 9,
|
68
90
|
|
69
|
-
'user_id': 3
|
91
|
+
'user_id': 3},
|
70
92
|
|
71
93
|
4: {'age': '',
|
72
94
|
|
@@ -76,9 +98,9 @@
|
|
76
98
|
|
77
99
|
'name': 'Karen',
|
78
100
|
|
79
|
-
'name_id': 10
|
101
|
+
'name_id': 10,
|
80
102
|
|
81
|
-
'user_id': 4
|
103
|
+
'user_id': 4}}
|
82
104
|
|
83
105
|
"""
|
84
106
|
|