【问题标题】:Cannot convert set( ) to Excel无法将 set( ) 转换为 Excel
【发布时间】:2020-03-23 09:23:25
【问题描述】:

我想知道如何使用 python 字典写入 excel 文件。 (xlrdopenpyxl

我在一个 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文件中的日语单词列表,然后使用字典写出每个日语单词对应的英语单词,如下所示:

    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)))

但是,我收到一个错误无法将 set([u'English']) 转换为 Excel。我在编码方面的经验很差,这是我第一次使用 python。我已经为此困扰了几天,所以如果您能帮助我解决这个问题,我将非常感激。谢谢你。

【问题讨论】:

    标签: python excel dictionary openpyxl xlrd


    【解决方案1】:

    当您将cell_value_class1 分配给您的字典时,您不需要额外的花括号{} - 通过使用此表示法,您正在创建一个set

    如果你直接在下面添加这一行,你会看到...

    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

    您现在正在添加intstrcell_value_class1 的任何类型,我认为这是您想要做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多