Ich habe eine Tabelle, die ich versuche, die Daten in eine Reihe von verschachtelten Python-Wörterbüchern zu importieren. Im Wesentlichen enthält das Arbeitsblatt Spalten für Standort, Gebäude, Stockwerk, Raum, Reihe und Rack. Ich würde die Datenstruktur wie wie folgt aussehen:Importieren von Excel-Daten in verschachteltes Wörterbuch
sites = [
{
"name": "",
"descr": "",
"buildings": [
{
"name": "",
"descr": "",
"floors": [
{
"name": "",
"descr": "",
"rooms": [
{
"name": "",
"descr": "",
"rows": [
{
"name": "",
"descr": "",
"racks": [
{
"name": "",
"descr": ""
}
]
}
]
}
]
}
]
}
]
}
]
Ein Beispiel für die Tabelle wäre:
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
| 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 |
+------+---------------+----------+----------------+-------+-------------+------+------------+-----+-----------+------+------------+-------------------------------------------------------------------+
Was ist der beste Weg, dies in meiner Datenstruktur zu bekommen? Das pyexcel-Modul kann Datensätze importieren, die im Grunde eine Liste von Wörterbüchern mit jeder Zeile als Eintrag in der Liste erstellen. Ich habe Probleme mit der Logik, um dies zu restrukturieren ...
Sollte ich die Struktur vor den for-Schleifen initialisieren? Soll ich die Struktur einfach so aufbauen, wie ich sie bevölkere? Wenn ich die Struktur mit Leerzeichen wie unten initialisiere, müsste ich sicherstellen, dass meine erste Zeile diese Leerzeichen ausfüllt, was mich denken lässt, dass Letzteres die bessere Option sein könnte.
Diese Frage würde stark von einem Beispiel [Minimal, vollständig und verifizierbar] (http://stackoverflow.com/help/mcve) profitieren. Das erleichtert es uns, Ihnen zu helfen. Insbesondere gibt es keine Beispieldaten oder Code, den Sie bereits ausprobiert haben. –
@StephenRauch Ich habe meinen Beitrag mit der Tabelle aktualisiert, mit der ich arbeite. Ich habe noch keinen richtigen Code, weil ich Schwierigkeiten habe, überhaupt anzufangen. Ich habe das Gefühl, dass ich die "setdefault" Wörterbuch-Option verwenden muss, um etwas davon zu tun ... – mikey