データを入れ子にしたPython辞書にインポートしようとしているスプレッドシートがあります。基本的に、スプレッドシートには、サイト、建物、床、部屋、行、ラックの列があります。私はこのように見えるようなデータ構造をしたいと思います:Excelデータを入れ子にした辞書にインポートする
sites = [
{
"name": "",
"descr": "",
"buildings": [
{
"name": "",
"descr": "",
"floors": [
{
"name": "",
"descr": "",
"rooms": [
{
"name": "",
"descr": "",
"rows": [
{
"name": "",
"descr": "",
"racks": [
{
"name": "",
"descr": ""
}
]
}
]
}
]
}
]
}
]
}
]
スプレッドシートの例は次のようになります。私のデータ構造にこれを取得するための最良の方法は何
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| site | site_descr | building | building_descr | floor | floor_descr | room | room_descr | row | row_descr | rack | rack_descr | rack_dn |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc1 | Data Center 1 | alpha | Alpha Building | 1 | Floor 1 | 100 | Room 100 | A | Row A | A5 | Rack A5 | uni/fabric/site-dc1/building-alpha/floor-1/room-100/row-A/rack-A5 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc1 | Data Center 1 | alpha | Alpha Building | 1 | Floor 1 | 100 | Room 100 | A | Row A | A5 | Rack A5 | uni/fabric/site-dc1/building-alpha/floor-1/room-100/row-A/rack-A5 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc1 | Data Center 1 | alpha | Alpha Building | 1 | Floor 1 | 200 | Room 200 | A | Row A | A5 | Rack A5 | uni/fabric/site-dc1/building-alpha/floor-1/room-200/row-A/rack-A5 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc1 | Data Center 1 | alpha | Alpha Building | 1 | Floor 1 | 100 | Room 100 | B | Row B | B5 | Rack B5 | uni/fabric/site-dc1/building-alpha/floor-1/room-100/row-B/rack-B5 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc1 | Data Center 1 | alpha | Alpha Building | 2 | Floor 2 | 100 | Room 100 | A | Row A | A7 | Rack A7 | uni/fabric/site-dc1/building-alpha/floor-2/room-100/row-A/rack-A7 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| dc2 | Data Center 2 | beta | Beta Building | 5 | Floor 5 | 200 | Room 200 | B | Row B | B5 | Rack B5 | uni/fabric/site-dc2/building-beta/floor-5/room-200/row-B/rack-B5 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
? pyexcelモジュールはレコードをインポートすることができ、基本的に各行がリストのエントリとして辞書のリストを作成します。私はこれを再構成するロジックに問題があります...
forループの前に構造体を初期化する必要がありますか?私はそれを実装するように私は構造を構築する必要がありますか?下のような空白で構造体を初期化すると、最初の行が空白で埋められていることを確認する必要があり、後者がより良い選択肢になるかもしれません。
この質問は、[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例の大きなメリットがあります。そうすれば、私たちがあなたを助けやすくなります。具体的にはサンプルデータはありませんし、すでに試したコードもありません。 –
@StephenRauch私は作業しているスプレッドシートで投稿を更新しました。実際のコードはまだありません。なぜなら、私は始動することさえも困っているからです。私は "setdefault"辞書オプションを使用してこのようなことをする必要があるように感じます..... – mikey