Tutorials  /  Python

Python Excel zu JSON Konvertierung

Ccentron Redaktion · Februar 2024 ·4 Min. Lesezeit ·Python, Tutorial

Es gibt viele Wege, eine Excel-Datei in JSON-Daten zu konvertieren. In diesem Tutorial werden wir uns zwei Python-Module ansehen, um Excel-Dateien in JSON zu konvertieren.

Module für die Konvertierung

  • excel2json-3
  • Pandas
VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

Konvertierung von Excel-Dateien in JSON-Dateien mit dem excel2json-3-Modul

Es ist ein sehr einfaches Modul, um Excel-Dateien in JSON-Dateien zu konvertieren. Die Inhalte aus dem Excel-Blatt werden in JSON-String konvertiert und in einer Datei gespeichert. Der Name der Dateien wird von den Namen der Excel-Blätter abgeleitet. Wenn es also zwei Blätter mit den Namen „Numbers“ und „Cars“ gibt, werden die JSON-Dateien entsprechend als Numbers.json und Cars.json benannt. Das Modul unterstützt sowohl das .xls- als auch das .xlsx-Dateiformat zur Konvertierung. Wir können die Excel-Datei sowohl aus dem Dateisystem als auch aus der URL lesen. Dieses Modul kann mit dem PIP-Befehl installiert werden.

Console
$ pip install excel2json-3

Für unser Beispiel habe ich eine Excel-Datei mit dem Namen „records.xlsx“ erstellt, die drei Blätter hat.

Python Excel to JSON Conversion

Hier ist das Skript, um diese Excel-Datei in JSON-Dateien zu konvertieren.

Python
import excel2json
excel2json.convert_from_file('records.xlsx')

Das Skript erstellt drei JSON-Dateien. Employees.json

Code
[
    {
        "EmpID": 1.0,
        "EmpName": "Pankaj",
        "EmpRole": "CEO"
    },
    {
        "EmpID": 2.0,
        "EmpName": "David Lee",
        "EmpRole": "Editor"
    },
    {
        "EmpID": 3.0,
        "EmpName": "Lisa Ray",
        "EmpRole": "Author"
    }
]

Cars.json

Code
[
    {
        "Car Name": "Honda City",
        "Car Model": "City",
        "Car Maker": "Honda",
        "Car Price": "20,000 USD"
    },
    {
        "Car Name": "Bugatti Chiron",
        "Car Model": "Chiron",
        "Car Maker": "Bugatti",
        "Car Price": "3 Million USD"
    },
    {
        "Car Name": "Ferrari 458",
        "Car Model": 458.0,
        "Car Maker": "Ferrari",
        "Car Price": "2,30,000 USD"
    }
]

Numbers.json

Code
[
    {
        "1.0": 3.0,
        "2.0": 4.0
    },
    {
        "1.0": "N1",
        "2.0": "N2"
    },
    {
        "1.0": 5.0,
        "2.0": 6.0
    },
    {
        "1.0": 7.0,
        "2.0": 8.0
    }
]

Wenn Sie die Excel-Datei von einer URL lesen müssen, verwenden Sie die Funktion convert_from_url().

Einschränkungen des excel2json-3-Moduls

  • Das Plugin hat sehr begrenzte Funktionen.
  • Es gibt keine Optionen, um Blätter, Zeilen und Spalten zu überspringen. Dies macht es schwierig, es mit größeren Excel-Dateien zu verwenden.
  • Das JSON wird in Dateien gespeichert. Meistens möchten wir in JSON konvertieren und es in unserem Programm verwenden, anstatt es als Datei zu speichern.
  • Die Ganzzahlen werden in Fließkommazahlen umgewandelt.

Konvertierung von Excel-Blättern in JSON-Strings mit dem Pandas-Modul

Das Pandas-Modul bietet Funktionen, um Excel-Blätter in DataFrame-Objekte zu lesen. Es gibt viele Optionen, um Header zu spezifizieren, bestimmte Spalten zu lesen, Zeilen zu überspringen usw. Wir können die Funktion to_json() verwenden, um das DataFrame-Objekt in einen JSON-String zu konvertieren. Sehen wir uns ein einfaches Beispiel an, um das Blatt „Employees“ zu lesen und in einen JSON-String zu konvertieren.

Python
import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')

json_str = excel_data_df.to_json()

print('Excel Sheet to JSON:\n', json_str)

Output:

Code
Excel Sheet to JSON:
{"EmpID":...}

So werden die JSON-Daten mit der Ausrichtung der Spalten erstellt. Wenn Sie den JSON-String mit einer zeilenweisen Ausrichtung erstellen möchten, übergeben Sie den „orient“-Parameterwert als „records“.

Code
json_str = excel_data_df.to_json(orient='records')

Output:

Code
Excel Sheet to JSON:
[{"EmpID":1,"EmpName":"Pankaj","EmpRole":"CEO"},...]

Fazit

Wenn Sie eine einfache und gut strukturierte Excel-Datei haben und diese in JSON-Dateien konvertieren möchten, verwenden Sie das excel2json-3-Modul. Aber wenn Sie mehr Kontrolle darüber haben möchten, wie die Excel-Daten gelesen und in JSON-Strings konvertiert werden, verwenden Sie das Pandas-Modul.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren