6
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CSV形式をJSON形式に変換するPythonプログラム

Last updated at Posted at 2019-07-22

IBM Cloudのサービスを使っている途中、膨大なcsvデータをJSON形式に変換しなければならないという作業に直面したので、初めてプログラムというものを書いてみました。
(もちろん一人ではできないので 周りの力を借りました ^^;)

業務上、人工知能に携わっているので 今後Pythonを使えるようになりたいと思いPythonでプログラムを書いてみました。
ちなみにPython知識ゼロでのスタートです ><
(List型とか辞書型とかもうついていけなかった。。)
ネット上で参考にしたサイトではListという型を使って書かれている方がほとんどでしたが、
今回は出力したい形式上「型」というものを意識せずに書いてみました。

至らない点がございましたら、ご指導ご鞭撻のほどよろしくお願いいたします。

main.py
import csv
import json
import codecs

#csvファイルを読み込む
with open("SampleData.csv") as f:
	#readerという変数に読み込んだものを格納する
	reader = csv.DictReader(f, delimiter=",", quotechar='"')

	#書き出したい場所を指定する
	with open('SampleData.json', 'w') as f:
		#write=出力コマンド
		f.write("{")
		#for文を回す
		for row in reader:
			#表示させたい文字(読み込んだファイルの中にはない内容)
			f.write("\n") #改行
			f.write(" \"add\": {")
			f.write("\n")
			f.write(" \"doc\": ")
			#読み込んだcsvファイルの情報をjsonに出力させる
			json.dump(row, f, ensure_ascii=False ,indent=1 , encoding='utf-8')
			f.write("},")
		#表示させたい文字(読み込んだファイルの中にはない内容)
		f.write("\n")
		f.write("\"commit\" : {}}")

整形後はこんな感じになります。

SampleData.json
{
 "add": {
 "doc": { 
 "title": "『△△クラウド』スケジューラー 使用説明書類", 
 "filename": "元文書へのリンク", 
 "keyword1": "", 
 "body1": "20××年8月10日サービスインの『△△クラウド』スケジューラーの使用にあたり、使い方等の説明書類を掲示致します。", 
 "keyword2": "", 
 "id": "1001", 
}},
"add": {
 "doc": {
 "title": "『△△クラウド』における個人端末使用許可申請のルール", 
 "filename": "元文書へのリンク", 
 "keyword1": "", 
 "body1": "△△クラウドにおける個人端末使用許可申請のルール・・・", 
 "keyword2": "", 
 "id": "1002", 
}},
"commit" : {}}

以上になります。

正直、delimiterとか quotecharとか何者なのかよく分かっていないです…(笑)
→ APIドキュメントの csv.DictReader 経由、csv.reader 経由、「Dialect クラスと書式化パラメータ」に説明があります。

今後少しずつ分からないものを潰して Pythonを覚えていけたらいいなあと思います。

最後まで見てくださりありがとうございました。

6
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?