質問編集履歴

1

書式の改善 補足事項の追記

2021/03/24 14:03

投稿

MitAbe
MitAbe

スコア15

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
+ ```