Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #74475 > unrolled thread
| Started by | u2107 <phani.lav@gmail.com> |
|---|---|
| First post | 2014-07-15 03:11 -0700 |
| Last post | 2014-07-16 20:24 -0700 |
| Articles | 2 — 2 participants |
Back to article view | Back to comp.lang.python
networkx plot random graph Error u2107 <phani.lav@gmail.com> - 2014-07-15 03:11 -0700
Re: networkx plot random graph Error Jason Swails <jason.swails@gmail.com> - 2014-07-16 20:24 -0700
| From | u2107 <phani.lav@gmail.com> |
|---|---|
| Date | 2014-07-15 03:11 -0700 |
| Subject | networkx plot random graph Error |
| Message-ID | <0d48b8fc-0ed0-434f-8004-5e0ff3693171@googlegroups.com> |
I am trying to read a file with 3 columns with col 1 and 2 as nodes/edges and column 3 as weight (value with decimal)
I am trying to execute this code
import networkx as nx
G = nx.read_edgelist('file.txt', data=[("weight")])
G.edges(data=True)
edge_labels = dict(((u, v), d["weight"]) for u, v, d in G.edges(data=True))
pos = nx.random_layout(G)
nx.draw(G, pos)
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
import matplotlib.pyplot as plt; plt.show()
Error:
File "graph_one.py", line 4, in <module>
G = nx.read_edgelist('File.txt', data=[("weight")])
File "<string>", line 2, in read_edgelist
File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/utils/decorators.py", line 241, in _open_file
fobj = _dispatch_dict[ext](path, mode=mode)
IOError: [Errno 2] No such file or directory: 'contactUSC_nodes_diff_small.txt'
lavanya@peerformance:~/Desktop/INRIA_Papers/Python$ python graph_one.py
Traceback (most recent call last):
File "graph_one.py", line 4, in <module>
G = nx.read_edgelist('contactUSC_node_diff_small.txt', data=[("weight")])
File "<string>", line 2, in read_edgelist
File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/utils/decorators.py", line 263, in _open_file
result = func(*new_args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/readwrite/edgelist.py", line 367, in read_edgelist
data=data)
File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/readwrite/edgelist.py", line 286, in parse_edgelist
for (edge_key,edge_type),edge_value in zip(data,d):
ValueError: too many values to unpack
[toc] | [next] | [standalone]
| From | Jason Swails <jason.swails@gmail.com> |
|---|---|
| Date | 2014-07-16 20:24 -0700 |
| Message-ID | <mailman.11908.1405567488.18130.python-list@python.org> |
| In reply to | #74475 |
On Jul 15, 2014, at 3:11 AM, u2107 <phani.lav@gmail.com> wrote:
> I am trying to read a file with 3 columns with col 1 and 2 as nodes/edges and column 3 as weight (value with decimal)
>
> I am trying to execute this code
>
>
> import networkx as nx
>
>
> G = nx.read_edgelist('file.txt', data=[("weight")])
> G.edges(data=True)
>
> edge_labels = dict(((u, v), d["weight"]) for u, v, d in G.edges(data=True))
> pos = nx.random_layout(G)
> nx.draw(G, pos)
> nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
>
> import matplotlib.pyplot as plt; plt.show()
>
>
>
> Error:
>
> File "graph_one.py", line 4, in <module>
> G = nx.read_edgelist('File.txt', data=[("weight")])
> File "<string>", line 2, in read_edgelist
> File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/utils/decorators.py", line 241, in _open_file
> fobj = _dispatch_dict[ext](path, mode=mode)
> IOError: [Errno 2] No such file or directory: 'contactUSC_nodes_diff_small.txt'
This looks like some file didn't exist which probably should have. The next line looks like you may have fixed the problem and then run the command again? Is this part of the error message? Including stuff like this is confusing (to me, at least).
> lavanya@peerformance:~/Desktop/INRIA_Papers/Python$ python graph_one.py
> Traceback (most recent call last):
> File "graph_one.py", line 4, in <module>
> G = nx.read_edgelist('contactUSC_node_diff_small.txt', data=[("weight")])
> File "<string>", line 2, in read_edgelist
> File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/utils/decorators.py", line 263, in _open_file
> result = func(*new_args, **kwargs)
> File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/readwrite/edgelist.py", line 367, in read_edgelist
> data=data)
> File "/usr/local/lib/python2.7/dist-packages/networkx-1.7-py2.7.egg/networkx/readwrite/edgelist.py", line 286, in parse_edgelist
> for (edge_key,edge_type),edge_value in zip(data,d):
>
> ValueError: too many values to unpack
Collections in python can be "unpacked" using a specific syntax that assigns a tuple of individual variables (or names) to a collection (these can be nested). If there are too many or too few single names, a ValueError gets thrown. Consider:
py> col = [1, 2, 3]
py> a, b, c = col
py> print("{0} {1} {2}".format(a, b, c))
1 2 3
py> a, b = col
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
py> a, b, c, d = col
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 3 values to unpack
The traceback for this exception ends inside the networkx code and either indicates a bug in the networkx code or an input error that is not gracefully handled.
My suggestions are twofold:
1) Upgrade to the latest release. If this is a bug, it's very possible that it was fixed in later releases (1.7 is over 2 years old and there have been a couple major releases since then.
2) Sign up for the networkx mailing list and ask your question there. You are certain to get a faster and more relevant answer. (See the "mailing list" link here: http://networkx.github.io/)
Hope this helps,
Jason
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web