質問編集履歴
1
書式の改善 補足事項の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -124,7 +124,7 @@
|
|
124
124
|
|
125
125
|
![イメージ説明](e4c34aa4b2d30adfc432ea8599c2f2f5.jpeg)
|
126
126
|
|
127
|
-
###補足
|
127
|
+
###補足1
|
128
128
|
|
129
129
|
上記フォルダ等含め、すべて同じファイルに保存はしてあります。
|
130
130
|
|
@@ -136,4 +136,130 @@
|
|
136
136
|
|
137
137
|
|
138
138
|
|
139
|
-
![イメージ説明](58fdc5ddf35fa2bec1da4917851722b6.png)
|
139
|
+
![イメージ説明](58fdc5ddf35fa2bec1da4917851722b6.png)
|
140
|
+
|
141
|
+
###補足2
|
142
|
+
|
143
|
+
下記のコードにより事前に「matome.json」のファイルは作成できている?と思います。
|
144
|
+
|
145
|
+
```ここに言語を入力
|
146
|
+
|
147
|
+
import openpyxl as excel, json
|
148
|
+
|
149
|
+
in_file = 'matome.xlsx'
|
150
|
+
|
151
|
+
out_file = 'matome.json'
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
def split_list():
|
156
|
+
|
157
|
+
users = read_and_split(in_file)
|
158
|
+
|
159
|
+
reslut = {}
|
160
|
+
|
161
|
+
for name, rows in users.items():
|
162
|
+
|
163
|
+
result[name] = calc_user(rows)
|
164
|
+
|
165
|
+
print(name, result[name]['total'])
|
166
|
+
|
167
|
+
with open(out_file, "wt") as fp:
|
168
|
+
|
169
|
+
json.dump(result, fp)
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
def read_and_split(in_file):
|
176
|
+
|
177
|
+
users ={}
|
178
|
+
|
179
|
+
sheet = excel.load_workbook(in_file).active
|
180
|
+
|
181
|
+
for row in sheet.iter_rows():
|
182
|
+
|
183
|
+
values = [col.value for col in row]
|
184
|
+
|
185
|
+
name = values[1]
|
186
|
+
|
187
|
+
if name not in users: users[name] = []
|
188
|
+
|
189
|
+
users[name].append(values)
|
190
|
+
|
191
|
+
return users
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
def calc_user(rows):
|
196
|
+
|
197
|
+
total = 0
|
198
|
+
|
199
|
+
items = []
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
for row in rows:
|
204
|
+
|
205
|
+
date, _, item, cnt, price, _ = row
|
206
|
+
|
207
|
+
date_s = date.strftime('%m%d')
|
208
|
+
|
209
|
+
items.append([date_s, item, cnt, price])
|
210
|
+
|
211
|
+
total += cnt * price
|
212
|
+
|
213
|
+
return {'items': items, 'total': total}
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
if __name__=="__main__":
|
218
|
+
|
219
|
+
split_list()
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
```
|
224
|
+
|
225
|
+
###上記のプログラミングを実行した結果
|
226
|
+
|
227
|
+
下記の写真の「matome」のexcelファイルとjsonファイルができました。
|
228
|
+
|
229
|
+
![イメージ説明](c1bb5f1f07e543e5fc169b0f3b92ac2d.png)
|
230
|
+
|
231
|
+
###「matome」のjson形式ファイルの中身です。
|
232
|
+
|
233
|
+
文字化けしているように見えます。
|
234
|
+
|
235
|
+
本書では、json形式で作成されたデータをWebブラウザのjsonビューワーで確認してみましょう。
|
236
|
+
|
237
|
+
との事ですが、jsonビューワーの使用方法が分かりませんでした。(ご教授頂けると幸いです。)
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
```
|
242
|
+
|
243
|
+
]], "total": 19100}, "\u5c71\u7530 \u53f2\u6717":
|
244
|
+
|
245
|
+
{"items": [["0315", "\u30df\u30ab\u30f3", 4, 2500],
|
246
|
+
|
247
|
+
["0317", "\u30d6\u30c9\u30a6", 2, 3000],
|
248
|
+
|
249
|
+
["0307", "\u30d0\u30ca\u30ca", 8, 1000],
|
250
|
+
|
251
|
+
["0316", "\u30a4\u30c1\u30b4", 5, 2000]],
|
252
|
+
|
253
|
+
"total": 34000}, "\u4e0a\u7530 \u7950\u8f1d":
|
254
|
+
|
255
|
+
{"items": [["0306", "\u91a4\u6cb9", 20, 1500],
|
256
|
+
|
257
|
+
["0320", "\u5473\u564c", 8, 950], ["0303", "\u8c46\u8150", 4, 1000], ["0307", "\u5927\u8c46\u30bb\u30c3\u30c8", 2, 2000]], "total": 45600}, "\u677e\u5c71 \u7adc\u5175":
|
258
|
+
|
259
|
+
{"items": [["0311", "\u30bd\u30fc\u30b9", 2, 1500],
|
260
|
+
|
261
|
+
["0321", "\u91a4\u6cb9", 10, 1500], ["0321", "\u6843\u30bc\u30ea\u30fc", 10, 1500], ["0305", "\u8c46\u8150", 1, 1000], ["0315", "\u5c0f\u8c46", 1, 1000], ["0320", "\u5c0f\u8c46", 5, 1000]], "total": 40000}, "\u9234\u6728 \u592a\u90ce": {"items": [["0306", "\u30df\u30ab\u30f3\u30bc\u30ea\u30fc", 20, 1500], ["0303", "\u30d0\u30ca\u30ca", 3, 1000]], "total": 33000}, "\u5927\u5185 \u572d\u4eba":
|
262
|
+
|
263
|
+
{"items": [["0305", "\u6e6f\u8449", 1, 2000], ["0316", "\u8c46\u8150", 4, 1000]], "total": 6000}, "\u5c71\u4e0b \u4e94\u90ce": {"items": [["0320", "\u30de\u30f3\u30b4\u30fc", 3, 1900]], "total": 5700}}
|
264
|
+
|
265
|
+
```
|