2017-07-20 7 views
1

の辞書の辞書の値は()私のPythonの辞書構造は、このようなものです:。パイソン()リスト

ips[host][ip] 

IPSの各行[ホスト] [IP]は次のようになります:

[host, ip, network, mask, broadcast, mac, gateway, ip_ver, status] 

したがって、キーも行に格納されます。この辞書は頻繁に処理され、他の重い処理にも使用されます。この辞書が最終的なものとみなされると、データベースに行を出力する必要があります。

アウトプット機能は、アウトプットの最適化や競合処理などの他のプログラミング機能(たとえば、主キーの競合があった場合に自動的に実行する機能)によって複雑になります。さらに、出力関数は多くの他の辞書/テーブルで使用されます。

出力関数には、辞書ではなくリストが必要です(キーがips辞書にも含まれています)。

locations = am_output.loc.values() 

しかし、これは辞書がリストの辞書の辞書であるIPSの:彼らはリストの辞書であるため、他のすべての辞書には、私は、これを行うことにより、出力機能の仕事に送ります。

ips = am_output.ips.values().values() 

しかし、私はエラーを取得:単純なリスト内包表記はどうしたら

AttributeError: 'dict_values' object has no attribute 'values' 
+0

がありますが、私はこれが機能するだろうと思いました4百万の記録はそれが巨大である。上記の最初の2つのコードセクションでは、フォーマットが示されています。 – gunslingor

答えて

2

[y for x in ips.values() for y in x.values()] 

デモ

>>> ips = {'a' : {1: 2, 3: 4}, 
...  'b': {'a': 'b', 'c': 'd'}} 
>>> [y for x in ips.values() for y in x.values()] 
[2, 4, 'b', 'd']