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.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: