Skip to content
Snippets Groups Projects
Commit 2a238c34 authored by AndiMajore's avatar AndiMajore
Browse files

fixed json download

Former-commit-id: 27cd4a3c32de0fb947169a8e33faa0e8e3a07eba [formerly 4729717f5e695b8228221b6a861d042327eabd12]
Former-commit-id: 33e465a1c42556c6ed13d98aa5e1e7e88299d573
parent 4b20efdb
No related branches found
No related tags found
No related merge requests found
...@@ -467,11 +467,6 @@ def graph_export(request) -> Response: ...@@ -467,11 +467,6 @@ def graph_export(request) -> Response:
G = nx.Graph() G = nx.Graph()
node_map = dict() node_map = dict()
for node in nodes: for node in nodes:
# drugstone_id is not interesting outside of drugstone
# try:
# del node['drugstone_id']
# except KeyError:
# pass
# networkx does not support datatypes such as lists or dicts # networkx does not support datatypes such as lists or dicts
for key in list(node.keys()): for key in list(node.keys()):
if isinstance(node[key], list) or isinstance(node[key], dict): if isinstance(node[key], list) or isinstance(node[key], dict):
...@@ -506,7 +501,23 @@ def graph_export(request) -> Response: ...@@ -506,7 +501,23 @@ def graph_export(request) -> Response:
data = nx.generate_graphml(G) data = nx.generate_graphml(G)
response = HttpResponse(data, content_type='application/xml') response = HttpResponse(data, content_type='application/xml')
elif fmt == 'json': elif fmt == 'json':
data = json.dumps(nx.readwrite.json_graph.node_link_data(G)) data = nx.readwrite.json_graph.node_link_data(G)
del data['graph']
del data['multigraph']
remove_node_properties = ['color', 'shape', 'border_width', 'group_name', 'border_width_selected', 'shadow',
'group_id', 'drugstone_type', 'font']
remove_edge_properties = ['group_name', 'color', 'dashes', 'shadow', 'id']
for node in data['nodes']:
for prop in remove_node_properties:
if prop in node:
del node[prop]
for edge in data['links']:
for prop in remove_edge_properties:
if prop in edge:
del edge[prop]
data["edges"] = data.pop("links")
data = json.dumps(data)
data = data.replace('"{', '{').replace('}"', '}').replace('"[', '[').replace(']"', ']').replace('\\"', '"')
response = HttpResponse(data, content_type='application/json') response = HttpResponse(data, content_type='application/json')
elif fmt == 'csv': elif fmt == 'csv':
data = pd.DataFrame(nx.to_numpy_array(G), columns=G.nodes(), index=G.nodes()) data = pd.DataFrame(nx.to_numpy_array(G), columns=G.nodes(), index=G.nodes())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment