実現したいこと
inet-hengeを使って、ネットワーク図の自動生成をするために、CSVファイルから情報を抽出してJSONファイルを作成したい。
発生している問題・エラーメッセージ
inet-hengeで読み込むJSONファイルは、このような形式である必要があります。 { "nodes": [ { "name": "A" }, { "name": "B" } ], "links": [ { "source": "A", "target": "B" } ] } しかし、CSVから読み込んでJSONに出力しただけでは、以下のようになっています。 [ [ "GigabitEthernet1/0/2", "GigabitEthernet2/0/2", "GigabitEthernet2/0/1", <中略> "routerA", "primaryswitch" ] ]
これを上記のinet-hengeで読み込めるJSONに修正する方法が分かりません。
該当のソースコード
Python ソースコード
import csv
import json
##########
#Extract host name and link data from CSV file, created by cdpList.py
#Create JSON file from list for inet-henge to draw network diagram
#########
def read_csv(file_path):
csv_file = open(file_path) # Open CSV file
csv_reader = csv.reader(csv_file) # Create reader object from CSV file
node_list = [] # Create list to store information link_list = [] dest_list = [] for row in csv_reader: # Extract data if csv_reader.line_num == 1: # Skip header row continue node_list.append(row[4]) #Add hostname data to node_list link_list.append(row[7]) #Add link data to link_list dest_list.append(row[0]) # Add destination host data from CSV to dest_list csv_file.close() return node_list, link_list, dest_list
if name == 'main':
file_path = 'C:\Scripts\WorkSpace\20220720-054322_cdpList.csv'
result = read_csv(file_path)
with open('index.json', 'w') as u: json.dump(result, u, indent=4, separators=(',', ': '))
試したこと
いろいろ調べましたが、何分プログラミング経験が浅いので、該当する答えを日英で見つけられませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
0 コメント