teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

出力したいJSONの追記。

2019/11/12 11:20

投稿

Fantasy_Euphony
Fantasy_Euphony

スコア9

title CHANGED
File without changes
body CHANGED
@@ -2,8 +2,8 @@
2
2
  例ですが以下のようなCSVがあった時に、Pythonを使って特定の列だけを抽出しJSONにする方法はありますでしょうか。
3
3
  出荷年月日,商品名,説明
4
4
  20190201,りんご,青森県産
5
- 20190201,りんご,価格200円
5
+ 20190201,りんご,価格200円
6
- 20190201,りんご,制作農家田中
6
+ 20190201,りんご,制作農家田中さん
7
7
 
8
8
  CSVをJSONにすることはできるのですが、同じ商品名で説明文が複数行に別れているときにこれを1行のJSONデータとして変換する方法がわからなくて困っています。
9
9
 
@@ -22,4 +22,11 @@
22
22
 
23
23
  環境
24
24
  python3.7.1
25
- anaconda
25
+ anaconda
26
+
27
+ ### 出力したいJSON
28
+ {
29
+ "出荷年月日":"20190201",
30
+ "商品名":"りんご",
31
+ "説明":"青森県産 価格200円 制作農家は田中さん"
32
+ }

1

コードと自環境の追加。

2019/11/12 11:20

投稿

Fantasy_Euphony
Fantasy_Euphony

スコア9

title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,21 @@
5
5
  20190201,りんご,価格:200円
6
6
  20190201,りんご,制作農家:田中
7
7
 
8
- CSVをJSONにすることはできるのですが、同じ商品名で説明文が複数行に別れているときにこれを1行のJSONデータとして変換する方法がわからなくて困っています。
8
+ CSVをJSONにすることはできるのですが、同じ商品名で説明文が複数行に別れているときにこれを1行のJSONデータとして変換する方法がわからなくて困っています。
9
+
10
+ 以下は単純にCSVの内容をJSONにしているだけのコードです。ここから上記のような内容にどう変えて行けば良いのかわからないというところです。
11
+ import csv
12
+ import json
13
+
14
+
15
+ with open("../testdata/test.csv") as f:
16
+ reader = csv.DictReader(f, delimiter=",", quotechar='"')
17
+
18
+ with open('testData.json', 'w') as f:
19
+ for row in reader:
20
+ json.dump(row, f, ensure_ascii=False ,indent=1 , encoding='utf-8')
21
+ f.write(",")
22
+
23
+ 環境
24
+ python3.7.1
25
+ anaconda