我有一個網絡要輸出到json文件。但是,當我輸出它時,節點目標將轉換爲數字,並且不匹配字符串的節點ID。目標與networkx json文件中的節點ID不匹配
例如:
G = nx.DiGraph(data)
G.edges()
結果:
[(22, 'str1'),
(22, 'str2'),
(22, 'str3')]
在python。這是對的。
但在輸出端,當我寫出像這樣的數據...
json.dump(json_graph.node_link_data(G), f,
indent = 4, sort_keys = True, separators=(',',':'))
而IDS三個目標節點的STR1',「str2的」和「STR3」 ...
{
"id":"str1"
},
{
"id":"str2"
},
{
"id":"str3"
}
節點22的目標已經變成了數字
{
"source":22,
"target":972
},
{
"source":22,
"target":1261
},
{
"source":22,
"target":1259
}
出現這種情況有字符串ID的所有節點s
這是怎麼回事,我該如何預防呢?
期望的結果是,「目標」字段應該保留字符串ID,或者字符串ID以匹配目標的方式變成數字。
啊有趣的是,它似乎是如果字符串被替換爲鏈接目標和來源的數字,那麼應該是ID值 - 否則庫如何從輸出json數據知道節點連接到什麼?我想我對networkx和圖形是新手,所以涉及的所有問題都不清楚。 儘管如此,感謝您的答案,以及如何訪問和修改這些數據:) – CHP
「id值」是什麼意思?整數節點名稱?它們也被替換。例如,在'links'數組中,''source':0'指向節點0,它被命名爲1. –
我的意思是說,當我使用json_graph.node_link_data寫出數據時,它將使得像'節點'和'鏈接'。在「節點」下,替換不會發生,僅在「鏈接」下。但是我想你會說所有獨特的「源」值都等價於需要連接的節點列表,所以如果讀取數據的軟件忽略了「節點」鍵而只是使用「源'數據。 – CHP