title: Networkx add_node seems to ignore attributes parsed as dictionary
body: <p>I'm tyring to load data from a social platform API into a networkx graph to conduct some analysis. But having issues. The <code>add_node</code> function seems to be ingoring the  I pass it and so no attributes are added.</p>
  
  <p><strong>Data from the API</strong>
  comes in the form of:</p>
  
  <pre><code>data= {'users': [{'1': {'attrib1': 'some value',
                          'attrib2': 'some other value',
                       .... etc},
                    '2': {'attrib1': 'some val',
                          'attrib2': 'you get the idea',
                       ... etc},
                  ... etc
                   }]}
  </code></pre>
  
  <p>so that's</p>
  
  <pre><code>dict with one key 'users'
       list with one element [0]
             a dict of each users with user number as the key
                   a dict that contains the same id and a load of other attributes
  </code></pre>
  
  <p>(slightly weird structure imo...)</p>
  
  <p>I've been successful creating nodes in a <code>nx.DiGraph</code> with:</p>
  
  <pre><code>    G = nx.DiGraph()
      for u in data['users'][0].values():
           G.add_node(str(u['id']),attr_dict=u)
  </code></pre>
  
  <p>But when I quiz nodes in <code>G</code> (e.g. <code>nx.get_node_attibutes(G,'firstName')</code>) there doesn't seem to be any attributes attached to the nodes.</p>
  
  <p><strong>Questions</strong></p>
  
  <ol>
  <li>Is there something I'm doing wrong? The <code>u</code> in the loop is definitely a dict, I have checked.</li>
  <li>Is there a more sane way of doing this? Perhaps by manipulating the <code>data</code> dict into a different structure?</li>
  </ol>