Wie bleiben beim Lesen von Excel-Zahlen mit Polaren beim Umwandeln in einen String (Utf8) alle Ziffern erhalten?Python

Python-Programme
Anonymous
 Wie bleiben beim Lesen von Excel-Zahlen mit Polaren beim Umwandeln in einen String (Utf8) alle Ziffern erhalten?

Post by Anonymous »

Ich lese eine XLSX-Datei, die von einem React-Frontend auf ein FastAPI-Backend hochgeladen wurde. Im Frontend verwende ich die xlsx-Bibliothek, um die Daten als JSON zu lesen und anzuzeigen:

Code: Select all

reader.onload = (evt) => {
const data = new Uint8Array(evt.target.result);
const workbook = XLSX.read(data, { type: 'array' });
const sheetName = workbook.SheetNames[0];
const sheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(sheet, { raw: true });
setTableData(jsonData);
};
Die Zahlen in der Tabelle (sowohl Original als auch angezeigt) haben bis zu 12 Dezimalstellen, z. B. 283.528580810862.
Ich lade die Datei dann mit Axios auf mein FastAPI-Backend hoch:

Code: Select all

const formData = new FormData();
formData.append("file", file, file.name);

const response = await axios.post(`${API_URL}/data/upload`, formData, {
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'multipart/form-data'
},
});
Im Backend habe ich die Excel-Datei mit Polars gelesen und versucht, eine Spalte in einen String umzuwandeln:

Code: Select all

def parse_user_data(contents: bytes):
buffer = BytesIO(contents)

df_raw = pl.read_excel(
buffer,
has_header=False,
schema_overrides={"column_5": pl.Utf8},
).with_columns(pl.col(pl.Utf8).str.to_lowercase())

print(df_raw.select(pl.col("column_5")).head(20))
Die gedruckte Ausgabe schneidet jedoch den Wert ab: 283.528580811
Nach meinem Verständnis sollten beim Umwandeln der Spalte in String/Utf8 die genauen Ziffern erhalten bleiben, die im Frontend angezeigt werden. Wie kann ich Excel mit Polaren so lesen, dass alle Dezimalstellen als Zeichenfolge erhalten bleiben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post