我已经下载了我的 Facebook 数据。我以 JSON 文件的形式获取了数据。
现在我正在尝试将这些 JSON 文件读入 NetworkX。我没有找到任何函数可以将 JSON 文件中的图形读取到 NetworkX 中。
在另一篇文章中,找到了与从 JSON 读取图表相关的信息,其中 JSON 文件是之前使用 json.dump()
从 NetworkX 创建的。
但就我而言,我是从 Facebook 下载数据的。是否有任何函数可以将 JSON 文件中的图形读取到 NetworkX 中?
最佳答案
与 Pandas 表或 Numpy 数组不同,JSON 文件没有严格的结构,因此无法编写函数将任何 JSON 文件转换为 Networkx 图。如果您想基于 JSON 构建图表,您应该自己选择所有需要的信息。您可以使用 json.loads
加载文件函数,根据您的规则提取所有节点和边,然后将它们放入您的图中 add_nodes_from
和 add_edges_from
功能。
对于example Facebook JSON file你可以写这样的东西:
import json
import networkx as nx
with open('fbdata.json') as f:
json_data = json.loads(f.read())
G = nx.DiGraph()
G.add_nodes_from(
elem['from']['name']
for elem in json_data['data']
)
G.add_edges_from(
(elem['from']['id'], elem['id'])
for elem in json_data['data']
)
nx.draw(
G,
with_labels=True
)
并获取此图表:
关于json - 从 JSON 文件将图形读入 NetworkX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57849461/