Как правильно преобразовать данные Window-1255 из файла Excel в UTF-8 в Python? - PullRequest
0 голосов
/ 12 октября 2018

Я пишу скрипт для преобразования экспортируемых расписаний из ibasketball.co.il в расписание ICS, которое будет использоваться совместно.

исходный файл: https://github.com/gilzellner/ibasketball_to_ics/blob/master/exported_data_2018-10-12_12-53.xls

код здесь: репозиторий github

данные подходят для даты и времени, но отображаются символы ивритакак это:\ u05d5 \ u05d3 \ u05e9 \ u05e8 \ u05d5 \ u05df '

вот мой код:

import xlrd
from ics import Calendar, Event
from datetime import datetime, timedelta
import dateutil

workbook = xlrd.open_workbook('/home/gilzellner/Downloads/exported_data_2018-10-12_12-53.xls')
sheet = workbook.sheet_by_index(0)
schedule = []
for rx in range(sheet.nrows):
    if 'number' in str(sheet.row(rx)[0]):
        game = {}
        game['date'] = str(sheet.row(rx)[2]).replace('text:', '').replace('u', '').replace('\'', '')
        game['time'] = str(sheet.row(rx)[3]).replace('text:', '').replace('u', '').replace('\'', '')
        game['home'] = str(sheet.row(rx)[4]).replace('text:', '').encode('utf-8')
        game['away'] = str(sheet.row(rx)[5]).replace('text:', '').encode('utf-8')
        game['location'] = str(sheet.row(rx)[6]).replace('text:', '').encode('utf-8')
        schedule.append(game)

for game in schedule:
    game['start'] = datetime.strptime(game['date'] + ' ' + game['time'], '%d-%m-%Y %H:%M:%S')\
        .replace(tzinfo=dateutil.tz.tzoffset('IST', 3*60*60))
    game['end'] = game['start'] + timedelta(hours=2)

c = Calendar()
for game in schedule:
    e = Event()
    e.name = game['away'] + ' at ' + game['home']
    e.begin = game['start']
    e.end = game['end']
    e.location = game['location']
    c.events.add(e)

with open('my.ics', 'w') as my_file:
    my_file.writelines(c)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...