[英]How to convert a JSON file to a graph with library networkx in Python?
我有一個很大的 JSON 文件,我想用 .networkx 庫將它轉換為圖形。 JSON 文件包含很多節點,例如:
{“數據”:[{“d”:2,“來源”:“C”,“目標”:“L”},...]}
我已經打開了 JSON 文件,並提取了 JSON 文件中的每個“數據”字典。 但是,我不知道如何使用 .networkx 將我所有的源節點、目標節點考慮到屬性“d”轉換為圖形。
import networkx as nx
import json
lst = list()
with open('json_file.json') as json_load:
data = json.load(json_load)
lst.extend( data["edges"])
d, src, tgt = [],[], [], []
for elem in lst:
d.append(elem["data"]["d"])
src.append(elem["data"]["source"])
tgt.append(elem["data"]["target"])
G = nx.Graph()
G.add_edges_from([tuple(zip(src, tgt))])
當我寫最后一行將邊插入 G 圖中時,它並沒有真正起作用。 我有一個錯誤。 我猜是因為我沒有正確地將源節點和目標節點合並在一起。
另外,我還有另一個問題。 我也不知道如何為圖中的每個節點考慮屬性“d”。
傳遞給G.add_edges_from
的參數無效,特別是zip
的結果 - ping 幾個可迭代對象已經是一個可迭代的元組,因此只需要zip(src, tgt, d)
。 接下來,根據 function 的要求,確保d
是字典列表。
這是一個可重現的例子:
import networkx as nx
src = ["A", "B", "C"]
tgt = ["B", "C", "D"]
d = [{"weight": 2}, {"weight": 3}, {"weight": 4}]
G = nx.Graph()
G.add_edges_from(zip(src, tgt, d))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.