Не удается преобразовать set () в Excel - PullRequest
0 голосов
/ 23 марта 2020

Я хотел бы знать, как писать в файле Excel, используя словарь python. (xlrd и openpyxl)

Я создал японско-английский sh словарь в файле excel и сохранил их как словарь в python следующим образом:

    d = {}
    for i in range(inputWs.nrows):
        cell_value_id = inputWs.cell(i,0).value
        cell_value_class1 = inputWs.cell(i,1).value
        d[cell_value_id] = {cell_value_class1}

Что я пытаюсь сделать, это прочитать menuWs, список японских слов в файле Excel, а затем написать Engli sh слова, соответствующие каждому японскому слову, используя словарь следующим образом:

    for j in range(1, translatedWs.max_row + 1):
        print(d.get(menuWs.cell_value(j, 0)))
        translatedWs.cell(row = j, column = 2, value = d.get(menuWs.cell_value(j, 0)))

Однако я получаю сообщение об ошибке Невозможно преобразовать набор ([u'Engli sh ']) в Excel . У меня очень плохой опыт кодирования, и я впервые использую python. Я застрял в этом уже пару дней, поэтому я был бы очень признателен, если бы вы могли помочь мне с этим. Спасибо.

1 Ответ

0 голосов
/ 23 марта 2020

Когда вы присваиваете cell_value_class1 своему словарю, вам не нужны дополнительные фигурные скобки {} - используя эту запись, вы создаете набор .

Если вы добавите эту строку прямо под вами вы увидите ...

d = {}
    for i in range(inputWs.nrows):
        cell_value_id = inputWs.cell(i,0).value
        cell_value_class1 = inputWs.cell(i,1).value
        d[cell_value_id] = {cell_value_class1}
        print(type(d[cell_value_id]))      # <-- this will show <class 'set'>

Я думаю, вы хотите просто добавить значение прямо в свой словарь. Удалите эти {}, например, так ...

d[cell_value_id] = cell_value_class1

Теперь вы добавляете int или str или любой тип cell_value_class1, который, как мне кажется, Вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...