first commit
This commit is contained in:
49
contrib/convert2json.py
Normal file
49
contrib/convert2json.py
Normal file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import json
|
||||
|
||||
def read_file(filename):
|
||||
with open(filename, 'r') as f:
|
||||
for line in f:
|
||||
yield line.strip()
|
||||
|
||||
class json_encoder(json.JSONEncoder):
|
||||
def default(self, obj):
|
||||
if isinstance(obj, set):
|
||||
return list(obj)
|
||||
return json.JSONEncoder.default(self, obj)
|
||||
|
||||
def main():
|
||||
graph = dict()
|
||||
|
||||
for line in read_file("connections.txt"):
|
||||
tokens = line.split(" ")
|
||||
tokens[0] = int(tokens[0])
|
||||
tokens[1] = int(tokens[1])
|
||||
|
||||
# add vertex 1
|
||||
if tokens[0] not in graph:
|
||||
graph[tokens[0]] = {
|
||||
'siblings': [],
|
||||
'transport': set()
|
||||
}
|
||||
graph[tokens[0]]['siblings'].append({
|
||||
'vertex': tokens[1],
|
||||
'edge': tokens[2]
|
||||
})
|
||||
graph[tokens[0]]['transport'].add(tokens[2])
|
||||
# add vertex 2
|
||||
if tokens[1] not in graph:
|
||||
graph[tokens[1]] = {
|
||||
'siblings': [],
|
||||
'transport': set()
|
||||
}
|
||||
graph[tokens[1]]['siblings'].append({
|
||||
'vertex': tokens[0],
|
||||
'edge': tokens[2]
|
||||
})
|
||||
graph[tokens[1]]['transport'].add(tokens[2])
|
||||
|
||||
print(json.dumps(graph, sort_keys=True, indent=2, cls=json_encoder))
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user