无法将 set( ) 转换为 Excel

Cannot convert set( ) to Excel

我想知道如何使用 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)))

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

当您将 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 的任何类型,我认为这就是您想要做的。