Как сохранить все цифры при чтении номера Excel с помощью Polars при приведении к строке (Utf8)?Python

Программы на Python
Ответить
Anonymous
 Как сохранить все цифры при чтении номера Excel с помощью Polars при приведении к строке (Utf8)?

Сообщение Anonymous »

Я читаю файл XLSX, загруженный из интерфейса React в серверную часть FastAPI. Во внешнем интерфейсе я использую библиотеку xlsx для чтения и отображения данных в формате JSON:

Код: Выделить всё

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);
};
Числа в таблице (как исходные, так и отображаемые) имеют длину до 12 десятичных цифр, напр. 283.528580810862.
Затем я загружаю файл на серверную часть FastAPI с помощью Axios:

Код: Выделить всё

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'
},
});
На серверной стороне я прочитал файл Excel с помощью Polars, пытаясь преобразовать один столбец в строку:

Код: Выделить всё

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))
Однако вывод на печать усекает значение: 283.528580811
Насколько я понимаю, приведение столбца к String/Utf8 должно сохранять точные цифры, отображаемые во внешнем интерфейсе. Как я могу читать Excel с помощью Polars таким образом, чтобы все десятичные цифры сохранялись в виде строки?

Подробнее здесь: https://stackoverflow.com/questions/798 ... casting-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»