Использование excel2json для преобразования в JSON — проблема с датами

#python #json #xls

#python #json #xls

Вопрос:

Я пытаюсь использовать excel2json для преобразования файла .xls в JSON. Файл Excel содержит 3 столбца:

 Column 1   Column 2   Column 3
1           BOB         1/1/2020
2           SALLY       1/4/2020
 

Я использовал:

 import excel2json
excel2json.convert_from_file('test.xls')
 

Он хорошо работает для всех, кроме столбца даты. Даты, указанные в файле JSON, являются случайными числами, например: 43831.0

Откуда это берется? Как я могу сохранить дату в том же формате в JSON?

Комментарии:

1. Проблема решена? Это так, пожалуйста, отметьте ответ как принятый, чтобы закрыть его.

Ответ №1:

Они не являются случайными, вам необходимо дополнительно обработать порядковое представление даты внутри Excel в datetime объекты, а затем вернуться к их строковым представлениям:

 from datetime import datetime
excel_date = 43831
dt = datetime.fromordinal(datetime(1900, 1, 1).toordinal()   excel_date - 2)
dt_string = dt.strftime("%d/%m/%Y")
 

Вы можете создать функцию, которая в основном преобразуется excel_date в строковое представление, используя приведенную выше логику, и сопоставить ее со списком ваших порядковых представлений дат в вашем JSON.