ライブラリを読もうかな
私のPython処女作として作成したCSVをJSONに変換するプログラムなのですが、習作とはいえせっかく作るのだから実用できるものにしたいと思っています。
修正したいポイントはいくつかあるのですがその中の一つが出力されるJSONファイルの中身の改行です。
現状、標準ライブラリのJSONEncoderを使用しているのですが、このモジュールで選択できる改行方法は全く改行しないかすべての要素で改行するかのどちらかしかないっぽいのです。
ID,name,text 0,ナツ,どうも 1,アキ,こんにちは
というCSVを変換すると考えると
[{"ID": "0", "name": "ナツ", "text": "どうも"}, {"ID": "1", "name": "アキ", "text": "こんにちは"}]
か
[ { "ID": "0", "name": "ナツ", "text": "どうも" }, { "ID": "1", "name": "アキ", "text": "こんにちは" } ]
の形式のどちらかということです。
私としては元のCSVの改行が維持される、つまり
[ {"ID": "0", "name": "ナツ", "text": "どうも"}, {"ID": "1", "name": "アキ", "text": "こんにちは"} ]
のようにしたいと思っているのです。Encode部分を自作するかライブラリを改造するかなのですがとりあえず勉強のためにもライブラリを読んで必要箇所を改造する方向でいこうかなと思っています。しかし読み始めてみるといやームズカシイ。そもそもライブラリはパッケージという形で配布されていてその構造すらよくわからん(^_^;)こりゃ時間がかかりそうだ。
ちなみに他に修正したいと考えているポイント
- 値が0または""のプロパティは出力せずスキップする
- 値が数字のプロパティは数字のまま出力する(現状1は"1"という具合に文字列化されているので)
これも後者の方はEncoderを読めば解決できそうな気がしないでもないです。