[付録] ツールの自製
このチュートリアルで使用したctojというツールはPythonで作成されています。ctojは汎用性を持たせるためにそれなりに複雑ですが、入力するcsvファイルが定型であれば、定型のJSONファイルに変換する事は結構簡単です。ctojの利用が難しい様であれば、自製する選択肢も検討しては如何でしょうか。
Pythonを使うとcsvファイルの読み込みは簡単です。読み込んだcsvファイルは、プログラム内では辞書(dict)や二次元のリスト(list)になります。また、出力するJSONファイルはプログラム内では辞書を作成すれば、JSONファイルとして書き出す事も簡単にできます。従って、入力した辞書やリストから出力する辞書を作成する処理を作成すれば、比較的単純にプログラミング出来ます。
以下、参考までに変換のノウハウを列挙します。
表題 | 説明 |
---|---|
csvの読込 | csvを読み込むには、csvというクラスをimportします。二次元のリストとして読み込むときにはreader()、辞書として読み込むときにはDictReader()を使います。reader()の例はctojのソースにあります。 |
JSONへの変換 | 辞書からJSON文へ変換するには、jsonというクラスをimportします。dumps()を使います |
BOMの削除 | Excelでcsvを作成すると、先頭にBOMというコードが付く場合があります。csvの読み込み時に先頭の1バイトが’\ufeff’で始まっている場合はその1バイトを削除します。 |
追加が必要なAttribute | “id”と”type”というAtttributeを必ず追加します。”id”は、法人番号や施設ID等から生成します。”type”は固定の文字列です。文字列については各共通データ仕様をご覧ください。 |
リンクの作成 | リンクのAttributeとは、typeがRelationshipのものを指します。このAttributeに登録する値はリンク先のEntityのidです。 |
日付の変換 | GIFでは日付は”YYYY-MM-DD”の10文字で表現する決まりになっていますが、Excelでcsvを作成すると”YYYY/MM/DD”になっています。また、MMとDDは一桁の場合もあります。これを変換して登録する必要があります。 |