SeaTable
  • Funktionen
  • Vorlagen
  • Lösungen
    • Marketing – Die nächste Marketing Kampagne kommt bestimmt. Nichts ist einfacher als das.
    • Projektmanagement – Planen, verfolgen und verwalten Sie Teamprojekte von Anfang bis Ende.
    • Personalwesen – Strukturieren Sie die HR-Prozesse für Neueinstellungen und Onboarding.
    • Vertrieb – Verwalten Sie Ihre gesamte Verkaufspipeline und Ihre Kundenbeziehungen an einem Ort.
    • Softwareentwicklung – Steigern Sie die Qualität und Geschwindigkeit Ihres Entwicklerteams mit SeaTable.
  • Unterstützung
    • Kurzanleitung – Alles was Sie wissen müssen, um SeaTable in wenigen Minuten startklar zu machen.
    • Hilfebereich – Finde Sie Antworten auf Ihre Fragen und erhalten Sie Tipps, wie Sie SeaTable optimal nutzen.
    • Integrationen – Verbinden Sie SeaTable mit Tools wie Zapier, Integromat oder n8n. Oder nutzen Sie die API von SeaTable.
    • SeaTable Blog – Hier finden Sie Produktinfos, Neuigkeiten und viele Anwendungsbeispiele wie Sie SeaTable optimal einsetzen können.
  • Preise
  • Login
  • login
  • Registrierung
  • Menü Menü

JavaScript & Python

  • Unterschiede zwischen JavaScript- und Python-Skripten in SeaTable
  • Anlegen und Löschen eines Skriptes
  • Import und Export eines Skriptes
  • Skript manuell, per Schaltfläche oder per Automation ausführen
  • Das Ausführungslog von Skripten
  • JavaScript-Beispiel: Eine Checkbox setzen, alle anderen entfernen
  • Python-Beispiel: Ein paar zufällige Einträge erstellen
  • Python-Beispiel: Die Metastruktur einer Base auslesen
  • Unterstützte Python-Bibliotheken
  • Home
  • Hilfe
  • Skripte, API und Integrationen
  • JavaScript & Python
  • Python-Beispiel: Die Metastruktur einer Base auslesen

Python-Beispiel: Die Metastruktur einer Base auslesen

Dieser Artikel stellt Ihnen ein Python-Skript vor, welches die komplette Metastruktur einer Base ausgibt. Dies ist z. B. hilfreich, wenn Sie im Community-Forum eine Frage zu einer Base haben und die Struktur Ihrer Base ohne Screenshots einfach und schnell beschreiben wollen.

Die Metastruktur einer Base

Die Metastruktur einer Base beschreibt die Tabellen, Spalten und Ansichten einer Base. Die Einträge und Datensätze in den Zeilen sind in der Metastruktur nicht enthalten. Die folgende JSON-Struktur beschreibt eine vergleichsweise simple Base mit nur einer Tabelle, zwei Spalten und einer Ansicht.

{
  "metadata": {
    "tables": [
      {
        "_id": "0000",
        "name": "Table1",
        "columns": [
          {
            "key": "0000",
            "name": "Name",
            "type": "text",
            "width": 200,
            "editable": true,
            "resizable": true
          },
          {
            "key": "BydO",
            "type": "date",
            "name": "Date",
            "editable": true,
            "width": 200,
            "resizable": true,
            "draggable": true,
            "data": {
              "format": "YYYY-MM-DD"
            },
            "permission_type": "",
            "permitted_users": []
          }
        ],
        "views": [
          {
            "_id": "0000",
            "name": "Default View",
            "type": "table",
            "is_locked": false,
            "rows": [],
            "formula_rows": {},
            "summaries": [],
            "filters": [],
            "sorts": [],
            "hidden_columns": [],
            "groupbys": [],
            "groups": []
          }
        ]
      }
    ],
    "version": 482,
    "format_version": 7,
    "settings": {
      "securities": {
        "table_settings": {
          "can_copy": false,
          "can_export": false,
          "can_print": false
        },
        "share_user_settings": {
          "can_copy": false,
          "can_export": false,
          "can_print": false
        }
      }
    }
  }
}

Dieser Code ist natürlich unpraktisch, wenn Sie im Community-Forum um Hilfe bitten, deshalb soll die Struktur dieser Tabelle auf die folgenden Zeilen reduziert werden.

--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---
Table: Table1 (ID: 0000)
--> Name (text)

Wie das genau funktioniert, erfahren Sie in diesem Artikel.

Wenn Sie mehr über Python erfahren wollen
Im Internet gibt es unzählige Anleitungen, Tutorials und Hilfestellungen rund um Python. Ein guter erster Anlaufpunkt ist jedoch mit Sicherheit die offizielle Python-Webseite, die auch eine Sammlung von Einsteiger-Tutorials bietet.

Der Python-Code zum Auslesen der Metastruktur

In SeaTable genügen nur wenige Zeilen Python-Code, um die Metastruktur einer Base zu bekommen. Konkret reichen wenige Zeilen für die Authentifizierung und eine Zeile für die Metastruktur.

from seatable_api import Base, context
base = Base(context.api_token, context.server_url)
base.auth()
metadata = base.get_metadata()
print(metadata)

Das Ergebnis bzw. die Ausgabe der Metastruktur ist jedoch alles andere als anwenderfreundlich.

{'tables': [{'_id': '0000', 'name': 'Table1', 'columns': [{'key': '0000', 'name': 'Name', 'type': 'text', 'width': 200, 'editable': True, 'resizable': True}], 'views': [{'_id': '0000', 'name': 'Default View', 'type': 'table', 'is_locked': False, 'rows': [], 'formula_rows': {}, 'summaries': [], 'filter_conjunction': 'And', 'filters': [], 'sorts': [], 'hidden_columns': [], 'groupbys': [], 'groups': []}]}], 'version': 13, 'format_version': 9, 'scripts': [{'name': 'Untitled', 'url': '/scripts/zkon.py', '_id': 'zkon', 'type': 'Python'}]}

Die Metastruktur in eine andere Form bringen

In der Variable metadata ist nun die gesamte Metastruktur mit all ihren Elementen im JSON-Format gespeichert. SeaTable bzw. Python bieten selbstverständlich Möglichkeiten, um diese Strukturen zu durchlaufen und damit zu interagieren.
Mit den folgenden Zeilen lässt sich die Metastruktur in die gewünschte Form bringen.

print("--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---")
for table in metadata['tables']:
  print('.')
  print("Table: "+table['name']+" (ID: "+table['_id']+")") 
  for column in table['columns']:
    print("  --> "+column['name']+" ("+column['type']+")")

Was passiert hier genau? Als Erstes weisen Sie Python an, sämtliche Tabellen mit einer for-Schleife zu durchlaufen. Als Nächstes geben Sie mit print den Namen der Tabelle und ihre ID aus. Hier sehen Sie auch, wie Sie mit den eckigen Klammern auf die einzelnen Elemente zugreifen können.

Das Gleiche wiederholen Sie für die Spalten. Durch die for-Schleife werden alle Spalten der jeweiligen Tabelle ausgegeben.

Einrückungen bei Python beachten
In Python wird die Einrückung von Zeilen zur Strukturierung des Codes verwendet. Das führt dazu, dass der Code kurz und übersichtlich bleibt. Deshalb müssen Sie genau auf die Einrückungen achten, da diese festlegen, wo die for-Schleife endet.

Ergänzung von Verlinkungen

Jetzt sind Sie schon fast am Ziel. Man könnte die Metastruktur bereits so gut verwenden, aber eine Schwäche des bisherigen Skriptes ist, dass bei Verlinkungs-Spalten nicht ersichtlich wird, wohin diese genau verlinken. Deshalb ersetzen Sie die letzten beiden Spalten mit dem folgenden Code:

  for column in table['columns']:
    link_target = ""
    if column['type'] == "link":
      link_target = " --> "+column['data']['other_table_id']
      if column['data']['other_table_id'] == table['_id']:
        link_target = " --> "+column['data']['table_id']
    print("  --> "+column['name']+" ("+column['type']+")")

Das komplette Skript

Das vollständige Skript ist ohne Anpassungen unmittelbar in jeder SeaTable Base lauffähig. Es wird Ihnen gute Dienste erweisen, wenn Sie im Community-Forum die Struktur Ihrer Base beschreiben wollen.

from seatable_api import Base, context
base = Base(context.api_token, context.server_url)
base.auth()

metadata = base.get_metadata()

print("--- COMPLETE BASE STRUCTURE WITH ALL BASES AND COLUMNS ---")
for table in metadata['tables']:
  print('.')
  print("Table: "+table['name']+" (ID: "+table['_id']+")") 
  for column in table['columns']:
    link_target = ""
    if column['type'] == "link":
      link_target = " --> "+column['data']['other_table_id']
      if column['data']['other_table_id'] == table['_id']:
        link_target = " --> "+column['data']['table_id']
    print("  --> "+column['name']+" ("+column['type']+link_target+")")

Wie hilfreich war dieser Artikel?
Updated on 25. Juli 2023
Python-Beispiel: Ein paar zufällige Einträge erstellenUnterstützte Python-Bibliotheken
Inhalte
  • Die Metastruktur einer Base
  • Der Python-Code zum Auslesen der Metastruktur
  • Die Metastruktur in eine andere Form bringen
  • Ergänzung von Verlinkungen
  • Das komplette Skript
SeaTable Logo

Machen Sie es wie Tausende anderer Menschen, die mit SeaTable leistungsfähige Prozesse entwickeln, Ordnung in ihre Daten bringen und ihre Aufgaben effizienter erledigen.

SeaTable auf Linkedin SeaTable auf Medium.com SeaTable auf Instagram SeaTable auf Twitter SeaTable auf Github SeaTable auf YouTube SeaTable auf Docker Hub

Produkte

  • SeaTable Cloud
  • SeaTable Dedicated
  • SeaTable Server
  • Support

Unterstützung

  • Kurzanleitung
  • Hilfebereich
  • Vorlagen
  • Integrationen
  • Forum
  • Developer-API
  • Status

Unternehmen

  • Über uns
  • Wir stellen ein
  • Presse
  • Kontakt
  • Blog
  • Impressum
  • Sicherheit
  • Datenschutz
  • Nutzungsbedingungen
  • EULA
Nach oben scrollen
  • English
  • Français
  • Español
  • Português
  • Русский