#!/usr/bin/env python3 import json from input_fj import input """ Functions that format the computed graph to match the interface to the output-part """ # creates a list that contains a dictionary for each node # the dictionaries store the values for the attributes def format_nodes(V): list_of_node_dicts = list() for node in V: new_dict = dict() new_dict["name"] = node.title new_dict["author"] = node.contributors new_dict["year"] = node.publication_date new_dict["journal"] = node.journal new_dict["doi"] = node.doi_url new_dict["group"] = node.group list_of_node_dicts.append(new_dict) return list_of_node_dicts # creates a list that contains a disctionary for each edge # the dictionaries contain the source as keys and the target as values def format_edges(E): list_of_edge_dicts = list() for edge in E: new_dict_2 = dict() new_dict_2["source"] = edge[0] new_dict_2["target"] = edge[1] list_of_edge_dicts.append(new_dict_2) return list_of_edge_dicts # combine the lists of nodes and edges to a dictionary and saves it to a json file def output_to_json(V,E): dict_of_all = dict() list_of_node_dicts = format_nodes(V) list_of_edge_dicts = format_edges(E) dict_of_all["nodes"] = list_of_node_dicts dict_of_all["links"] = list_of_edge_dicts with open('json_text.json','w') as outfile: json.dump(dict_of_all, outfile) #knoten = ["doi1", "doi2", "doi3"] #kanten = [[1,2],[3,4],[5,6]] #output_to_json(knoten,kanten)