Python Excel zu JSON Konvertierung

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

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.

$ 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.

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

Das Skript erstellt drei JSON-Dateien. Employees.json

[
    {
        "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

[
    {
        "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

[
    {
        "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.

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:

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“.

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

Output:

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.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Apache Airflow: Workflow-Orchestrierung erklärt

Python, Tutorial
Vijona25 Juni um 13:48 Uhr Apache Airflow: Workflow-Orchestrierung für Datenpipelines Moderne datengetriebene Organisationen arbeiten mit Pipelines, die Informationen erfassen, umwandeln, anreichern und von einem System in ein anderes übertragen. Solche Datenpipelines…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

CrewAI Crashkurs: Multi-Agenten-KI mit Python

Python, Tutorial
Vijona23 Juni um 12:20 Uhr CrewAI Crash Course: Produktionsreife Multi-Agenten-KI-Workflows erstellen CrewAI ist ein schlankes und sehr schnelles Python-Framework, mit dem sich autonome KI-Agenten koordinieren lassen, die gemeinsam als Team eine…