有人可以幫助我嗎?我有這個錯誤。我想循環並將wordnet中的所有數據插入到excel的不同列中。它將首先讀取一列的Excel文件。然後,它將創建其他excel併爲每個單詞生成一行和不同列的同義詞。TypeError:'set'對象不支持Excel中的索引
此代碼生成同義詞都在一列:
import nltk
import xlrd
import csv
import xlwt
import xlsxwriter
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.corpus import wordnet
workbook = xlrd.open_workbook('C:\\Users\\runeza\Desktop\database.xlsx')
sheet_names = workbook.sheet_names()
sheet = workbook.sheet_by_name(sheet_names[0])
wb = xlwt.Workbook()
ws = wb.add_sheet("test")
for col_idx in range(sheet.ncols):
for row_idx in range(sheet.nrows):
cell = sheet.cell(row_idx, col_idx).value #read content in column cell
synonyms = []
for syn in wordnet.synsets(cell):
for l in syn.lemmas():
#print(l.name())
synonyms.append(l.name())
a = set(synonyms)
#print (a)
ws.write(row_idx, col_idx,",".join(a))
wb.save("sample.xls")
我已經修改了代碼,以正確放置的話在不同的列:
import nltk
import xlrd
import csv
import xlwt
import xlsxwriter
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from nltk.corpus import wordnet
workbook = xlrd.open_workbook('C:\\Users\\runeza\Desktop\database.xlsx')
sheet_names = workbook.sheet_names()
sheet = workbook.sheet_by_name(sheet_names[0])
wb = xlwt.Workbook()
ws = wb.add_sheet("test")
for col_idx in range(sheet.ncols):
for row_idx in range(sheet.nrows):
cell = sheet.cell(row_idx, col_idx).value #read content in column cell
synonyms = []
for syn in wordnet.synsets(cell):
for l in syn.lemmas():
synonyms.append(l.name())
a = set(synonyms)
#print (a)
for col_idx in range(len(a)):
for row_idx in range(len(a[col_idx])):
ws.write(col_idx, row_idx, a[col_idx][row_idx])
wb.save("sample.xls")
但它給這個錯誤:
Traceback (most recent call last):
File "C:\Users\runeza\Documents\PythonCode\outputfile.py", line 29, in <module>
for row_idx in range(len(a[col_idx])):
TypeError: 'set' object does not support indexing
這就是我的(C:\ Users \ runeza \ Desktop \ database.xlsx)的樣子:
這是我期望的結果:
我真的不能幫你,除非我能看到的文件,我不能告訴你有什麼去做。顯然,從你的錯誤錯誤,首先你在'col_idx'的兩個不同循環中使用相同的變量,其次對象不支持索引意味着你不能通過索引訪問它。 –
請粘貼「C:\\ Users \\ runeza \ Desktop \ database.xlsx」文件以查看問題。 – saul
我已編輯問題並插入文檔的外觀。 @ElvirMuslic – runeza