json - 从 JSON 文件将图形读入 NetworkX

标签 json networkx

我已经下载了我的 Facebook 数据。我以 JSON 文件的形式获取了数据。

现在我正在尝试将这些 JSON 文件读入 NetworkX。我没有找到任何函数可以将 JSON 文件中的图形读取到 NetworkX 中。

在另一篇文章中,找到了与从 JSON 读取图表相关的信息,其中 JSON 文件是之前使用 json.dump() 从 NetworkX 创建的。

但就我而言,我是从 Facebook 下载数据的。是否有任何函数可以将 JSON 文件中的图形读取到 NetworkX 中?

最佳答案

与 Pandas 表或 Numpy 数组不同,JSON 文件没有严格的结构,因此无法编写函数将任何 JSON 文件转换为 Networkx 图。如果您想基于 JSON 构建图表,您应该自己选择所有需要的信息。您可以使用 json.loads 加载文件函数,根据您的规则提取所有节点和边,然后将它们放入您的图中 add_nodes_fromadd_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
)

并获取此图表:

enter image description here

关于json - 从 JSON 文件将图形读入 NetworkX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57849461/

相关文章:

json - 如何在 github 上托管 Jupyter 笔记本?

python - NetworkX graphviz_layout 不工作?

python - MapReduce、Python 和 NetworkX

python - 破解这个嵌套列表列表?

javascript - Backbone.js 中的模型

json - 迭代对象内的项目

python - 如何在python中优化以下算法的内存和时间使用

python - 有没有办法在 NetworkX 的 MultiGraph 上运行 pagerank 算法?

python - 在 networkx 中着色、加权和绘制多图?

python - eval 与 json 转换和解析类似字符串的字典