Python 2.7 从字符串而非文件读取networkx中的点图

Python 2.7 从字符串而非文件读取networkx中的点图,python-2.7,graph,networkx,Python 2.7,Graph,Networkx,根据read\u dot()方法将文件句柄作为输入 即使我这样做也很管用 g = nx.drawing.nx_agraph.read_dot(dotFile) 其中dotFile是文件句柄。但是,如果变量中有dot格式的图形,如何以nx图形格式导入 编辑- 我的变量如下所示 dotFormat = """ digraph G{ edge [dir=forward] node [shape=plaintext] 0 [label="0 (None)"] 0 -> 7 [label="roo

根据
read\u dot()
方法将文件句柄作为输入

即使我这样做也很管用

g = nx.drawing.nx_agraph.read_dot(dotFile)
其中
dotFile
是文件句柄。但是,如果变量中有
dot
格式的图形,如何以nx图形格式导入

编辑- 我的变量如下所示

dotFormat = """
digraph G{
edge [dir=forward]
node [shape=plaintext]
0 [label="0 (None)"]
0 -> 7 [label="root"]
1 [label="1 (The)"]
4 [label="4 (great Indian Circus)"]
4 -> 4 [label="compound"]
4 -> 1 [label="det"]
4 -> 4 [label="amod"]
5 [label="5 (is)"]
6 [label="6 (in)"]
7 [label="7 (Mumbai)"]
7 -> 6 [label="case"]
7 -> 5 [label="cop"]
7 -> 4 [label="nsubj"]
}
"""
编辑2-我还尝试使用
py_dot
阅读,然后像这样转换为networkx图形

pg = pydot.graph_from_dot_data(dotFormat)
g = nx.nx_pydot.from_pydot(pg)
然后我得到以下错误

if P.get_strict(None): # pydot bug: get_strict() shouldn't take argument
AttributeError: 'list' object has no attribute 'get_strict'

我该怎么做?

可以通过显式使用pygraphviz加载图形,然后将其转换为networkx图形(在本例中为多向图)来完成此操作


“点”数据中的“图形”实际上返回一个图形列表

所以只需使用其中的一个元素

In [1]: import pygraphviz

In [2]: from networkx.drawing import nx_agraph

In [3]: dotFormat = """
digraph G{
edge [dir=forward]
node [shape=plaintext]
0 [label="0 (None)"]
0 -> 7 [label="root"]
1 [label="1 (The)"]
4 [label="4 (great Indian Circus)"]
4 -> 4 [label="compound"]
4 -> 1 [label="det"]
4 -> 4 [label="amod"]
5 [label="5 (is)"]
6 [label="6 (in)"]
7 [label="7 (Mumbai)"]
7 -> 6 [label="case"]
7 -> 5 [label="cop"]
7 -> 4 [label="nsubj"]
}
"""

In [4]: G = nx_agraph.from_agraph(pygraphviz.AGraph(dotFormat))