Attribute | 追加ルール | 説明 | ||||||
id | ||||||||
dataSource | ||||||||
dataSource | ||||||||
csvAttr | csvの項目名として、"施設名"を指定します。 | |||||||
entityType | 施設名からidをとりだすため、検索すべきEntity typeとして"Building"を指定します | |||||||
searchAttr | 施設名で検索するため、施設名が格納されている"name"を指定します | |||||||
valueAttr | idを取り出すため、値を取り出すAttributeとして"id"を指定します | |||||||
zones | subzoneNameの | |||||||
merge | ここまでの利用例では、csvの一行がひとつのEntityに対応していました。それに対し、zonesはcsv上の複数の行をマージする必要があります。そこで、"union"を指定します | |||||||
value | zonesはvaluesり中身が一致しているcsv上の行をマージします | |||||||
mergekey | 一致しているかどうかを確認する項目として、"zoneName"を指定します | |||||||
zoneName | ||||||||
dataSource | ||||||||
csvAttr | csvの項目名として、"大分類"を指定します。 | |||||||
subZones | ||||||||
mergekey | 一致しているかどうかを確認する項目として、"subzoneName"の最初の要素を指定します。指定方法は、["subzoneName",0]です。リストの要素の番号はゼロオリジンなので、最初の要素は"0"となります | |||||||
subzoneName | arratの一つ目と二つ目の要素に二つの値を入れないとならないため、subzoneNameのメンバのitemsをリスト構造に展開として二つの値を登録できる様にしますし、 | |||||||
0 | dataSource | 最初の要素はmergekeyに指定されているので、同じ値は名寄せされます | ||||||
csvAttr | csvの項目名として"中分類"を指定します | |||||||
1 | dataSource | 二番目の要素は、データ仕様ではりリスト構造なので、typeがarrayの構造を作ってからdataSourceを記述します | ||||||
csvAttr | csvの項目名として"細分類"を指定します |
C:\Users\owner>chdir c:/Tools/ c:\Tools>Python ctoj.py dir=c:/Tools/data/ inputfile=Zonescsv.csv outputfile=BuildingZonesjson.json schemafile=BuildingZones.exschema.json Buildingfile=Buildingjson.json logfile=Zoneslog.txt ##### start ctoj converter ##### CSV translated to JSON successfully. output Entity number: 3 |
[ { "id": "urn:ngsi-ld:Building:JP9000020342025-01234567", "type": "Building", "zones": { "type": "Text", "value": [ { "zoneName": "建物内部", "subzones": [ { "subzoneName": [ "1F", [ "吉浦支所", "男子トイレ", "女子トイレ", "正面玄関", "階段室", "共用ロビー" ] ] }, { "subzoneName": [ "2F", [ "市民センター窓口", "音楽室", "調理室", "図書室", "階段室", "共用ロビー" ] ] }, { "subzoneName": [ "3F", [ "学習室1", "学習室2", "階段室", "共用ロビー" ] ] }, { "subzoneName": [ "4F", [ "ホール", "控室1", "階段室", "共用ロビー" ] ] } ] }, { "zoneName": "建物外部", "subzones": [ { "subzoneName": [ "屋上", [ "塔屋", "屋上床" ] ] }, { "subzoneName": [ "外壁", [ "北面", "南面", "西面", "東面" ] ] }, { "subzoneName": [ "アプローチ" ] } ] }, { "zoneName": "建物周辺", "subzones": [ { "subzoneName": [ "駐車場" ] }, { "subzoneName": [ "植栽" ] } ] } ] } }, { "id": "urn:ngsi-ld:Building:JP9000020342025-03000012", "type": "Building", "zones": { "type": "Text", "value": [ { "zoneName": "校舎", "subzones": [ { "subzoneName": [ "1F", [ "正面玄関", "職員玄関", "職員室", "校長室", "音楽室", "西階段室", "東階段室", "給食室" ] ] }, { "subzoneName": [ "2F", [ "1年1組", "1年2組", "西階段室", "東階段室", "廊下" ] ] }, { "subzoneName": [ "3F", [ "2年1組", "2年2組", "西階段室", "東階段室", "廊下", "音楽室", "倉庫" ] ] } ] }, { "zoneName": "体育館", "subzones": [ { "subzoneName": [ "部隊" ] }, { "subzoneName": [ "コート" ] } ] }, { "zoneName": "屋外", "subzones": [ { "subzoneName": [ "正門" ] }, { "subzoneName": [ "裏門" ] }, { "subzoneName": [ "グランド" ] }, { "subzoneName": [ "花壇" ] } ] } ] } }, { "id": "urn:ngsi-ld:Building:JP9000020342025-04000008", "type": "Building", "zones": { "type": "Text", "value": [ { "zoneName": "校舎", "subzones": [ { "subzoneName": [ "1F", [ "正面玄関", "職員玄関", "職員室", "校長室", "音楽室", "西階段室", "東階段室", "給食室" ] ] }, { "subzoneName": [ "2F", [ "1年1組", "1年2組", "西階段室", "東階段室", "廊下" ] ] }, { "subzoneName": [ "3F", [ "2年1組", "2年2組", "西階段室", "東階段室", "廊下", "音楽室", "倉庫" ] ] } ] }, { "zoneName": "体育館", "subzones": [ { "subzoneName": [ "部隊" ] }, { "subzoneName": [ "コート" ] } ] }, { "zoneName": "屋外", "subzones": [ { "subzoneName": [ "正門" ] }, { "subzoneName": [ "裏門" ] }, { "subzoneName": [ "グランド" ] }, { "subzoneName": [ "花壇" ] } ] } ] } } ] |
02: inputdir: c:/Tools/Data/, inputfile: Zonescsv.csv 04: directory: Buildingdir, Buildingfile: Buildingfile 09: outputdir: c:/Tools/Data/, outputfile: BuildingZonesjson.json 10: CSV Line# 2 10: CSV Line# 3 10: CSV Line# 4 10: CSV Line# 5 10: CSV Line# 6 10: CSV Line# 7 10: CSV Line# 8 10: CSV Line# 9 10: CSV Line# 10 10: CSV Line# 11 10: CSV Line# 12 10: CSV Line# 13 10: CSV Line# 14 10: CSV Line# 15 10: CSV Line# 16 10: CSV Line# 17 10: CSV Line# 18 10: CSV Line# 19 10: CSV Line# 20 10: CSV Line# 21 10: CSV Line# 22 10: CSV Line# 23 10: CSV Line# 24 10: CSV Line# 25 10: CSV Line# 26 10: CSV Line# 27 10: CSV Line# 28 10: CSV Line# 29 10: CSV Line# 30 10: CSV Line# 31 10: CSV Line# 32 10: CSV Line# 33 10: CSV Line# 34 10: CSV Line# 35 10: CSV Line# 36 10: CSV Line# 37 10: CSV Line# 38 10: CSV Line# 39 10: CSV Line# 40 10: CSV Line# 41 10: CSV Line# 42 10: CSV Line# 43 10: CSV Line# 44 10: CSV Line# 45 10: CSV Line# 46 10: CSV Line# 47 10: CSV Line# 48 10: CSV Line# 49 10: CSV Line# 50 10: CSV Line# 51 10: CSV Line# 52 10: CSV Line# 53 10: CSV Line# 54 10: CSV Line# 55 10: CSV Line# 56 10: CSV Line# 57 10: CSV Line# 58 10: CSV Line# 59 10: CSV Line# 60 10: CSV Line# 61 10: CSV Line# 62 10: CSV Line# 63 10: CSV Line# 64 10: CSV Line# 65 10: CSV Line# 66 10: CSV Line# 67 10: CSV Line# 68 10: CSV Line# 69 10: CSV Line# 70 10: CSV Line# 71 10: CSV Line# 72 10: CSV Line# 73 10: CSV Line# 74 10: CSV Line# 75 10: CSV Line# 76 10: CSV Line# 77 10: CSV Line# 78 10: CSV Line# 79 10: CSV Line# 80 10: CSV Line# 81 10: CSV Line# 82 12: CSV translated to JSON successfully. Enity number: 3 |