Menu

Coppell Technologies
Fiwareで都市OSを動かしてみよう
NGSI-LDにも挑戦
データ仕様の現状と課題
スマートシティの標準規定(案)
データモデルのユースケース


Column
Link集
用語集


Coppell

Technologies

利用例-3 (Batch形式化)


■利用例の概要
 NGSI V2に準拠するJSONファイルをバッチ形式で出力します。その際に、Entity typeとidが一致するEntityが見つかっちら、ひとつにまとめます。

■入力ファイル
 本利用例では、入力ファイルとしてctojの利用例-3で作成したJSONファイルを利用します。ctojの利用例-3では最初の2つのENtityのidが重複していました。


 [
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-01234567",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "吉浦東本町1-7-23",
         "addressRegion": "広島県",
         "addressLocality": "呉市"
       }
     }
   },
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-01234567",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "吉浦東本町1-7-23",
         "addressRegion": "広島県",
         "addressLocality": "呉市"
       }
     }
   },
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-03000012",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "吉浦中町2-6-5"
       }
     }
   },
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-04000008",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "狩留賀町8-6",
         "addressLocality": "呉市"
       }
     }
   }
 ]

■実行
 cドライブ直下にToolsというフォルダを作成して、全てのファイルをここに格納して実行しています。


C:\Users\owner>chdir c:/Tools/

c:\Tools>Python jtoj.py dir=c:/Tools/data/ outputfile=LandBatchjson.jsoninputfile1=Landjson.json type=Land logfile=LandBatchlog.txt
dir: c:/Tools/data/, file: Landjson.json
json merged successfully. Number of output Entities: 3

■変換結果
 ツール実行結果は以下の通りです。Entityのリストが"entities"にまとめられているとともに、idが重複する最初の2つのEntityがひとつにまとめられています。


{
 "actionType": "append",
 "entities": [
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-01234567",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "吉浦東本町1-7-23",
         "addressRegion": "広島県",
         "addressLocality": "呉市"
       }
     }
   },
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-03000012",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "吉浦中町2-6-5"
       }
     }
   },
   {
     "id": "urn:ngsi-ld:Land:JP0990123456001-04000008",
     "type": "Land",
     "usage": {
       "type": "Array",
       "value": [
         "公益施設用地"
       ]
     },
     "address": {
       "type": "PostalAddress",
       "value": {
         "streetAddress": "狩留賀町8-6",
         "addressLocality": "呉市"
       }
     }
   }
 ]
}

ログファイルは以下の通りです。全ての行でエラーは発生していません。

01: input1: directory: c:/Tools/data/, inputfile: Landjson.json
03: outputdir: c:/Tools/data/, outputfile: LandBatchjson.json
06: JSON merged successfully. Number of output Entities: 3