title: How to visualize arbitrary json using networkx?
body: <p>I have a JSON object. For example:</p>
  
  <pre><code>js = {'a':'b', 'c':[10, 20], 'd':{'f':'k', 'l':'m'}}
  </code></pre>
  
  <p>Now, I would like to use <code>networkx</code> library to show a graph visualizing this JSON. In more details, for the given example I would like to have a "root" node pointing to <code>a</code>, <code>c</code> and <code>d</code> nodes. Then <code>a</code> node should point to the <code>b</code>  node, and <code>c</code> node should point to <code>10</code> and <code>20</code>, <code>d</code> node should point to <code>f</code> and <code>l</code> nodes and finally <code>f</code> and <code>l</code> nodes should point to <code>k</code> and <code>m</code> nodes, respectively. So, I want to execute the following:</p>
  
  <pre><code>G=nx.Graph()
  G.dad_nodes_from(['a', 'c', 'd', 'b', 10, 20, 'f', 'l', 'k', 'm'])
  G.add_edge('a','b')
  G.add_edge('c',10)
  G.add_edge('c',20)
  G.add_edge('d','f')
  G.add_edge('d','l')
  G.add_edge('f','k')
  G.add_edge('l','m')
  </code></pre>
  
  <p>I can do it manually, but how to do it automatically?</p>
  
  <p><strong>ADDED:</strong> Part of the problem come from the fact that <code>d</code> may refer to different objects. So, <code>d</code> as key in one dictionary is not the same node as <code>d</code> in another dictionary.</p>