首页 > 解决方案 > 网络 X 错误:否GEXF 文件中的元素

问题描述

我正在尝试使用 nx 读取 gexf 文件并得到上述错误:

import networkx as nx
nx.read_gexf('KwNet-Journals/KwNet-Journals.gexf')

gexf 文件可以在这里找到。

标签: pythonnetworkx

解决方案


NetworkX 不支持该文件所在的 GEXF 1.3。


In [5]: pdb
Automatic pdb calling has been turned ON

In [6]: nx.read_gexf(r"<...>\KwNet-Journals.gexf")
<...>
NetworkXError: No <graph> element in GEXF file.
<...>

ipdb> l
    688         for version in self.versions:
    689             self.set_version(version)
    690             g = self.xml.find(f"{{{self.NS_GEXF}}}graph")
    691             if g is not None:
    692                 return self.make_graph(g)
--> 693         raise nx.NetworkXError("No <graph> element in GEXF file.")
    694
<...>

ipdb> self.NS_GEXF
'http://www.gexf.net/1.2draft'

ipdb> q

In [7]: ! head "<...>\KwNet-Journals.gexf"
<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.3" version="1.3" xmlns:viz="http://www.gexf.net/1.3/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.3 http://www.gexf.net/1.3/gexf.xsd">
  <meta lastmodifieddate="2020-02-07">
    <creator>Gephi 0.9</creator>
    <description></description>
  </meta>
  <graph defaultedgetype="undirected" timeformat="double" timerepresentation="timestamp" mode="dynamic">
<...>


In [10]: nx.read_gexf(r"<...>\KwNet-Journals.gexf", version='1.3')

NetworkXError: Unknown GEXF version 1.3.
> c:\python38\lib\site-packages\networkx\readwrite\gexf.py(253)set_version()
    251         d = self.versions.get(version)
    252         if d is None:
--> 253             raise nx.NetworkXError(f"Unknown GEXF version {version}.")
    254         self.NS_GEXF = d["NS_GEXF"]
    255         self.NS_VIZ = d["NS_VIZ"]

ipdb> version
'1.3'

ipdb> self.versions.keys()
dict_keys(['1.1draft', '1.2draft'])


推荐阅读