第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

openpyxl 無法追加列表數(shù)據(jù)類型,一直顯示 TypeError:

openpyxl 無法追加列表數(shù)據(jù)類型,一直顯示 TypeError:

BIG陽 2021-09-14 10:38:54
這是我的代碼from openpyxl import Workbookfrom openpyxl import load_workbookdef get_data_list(filename, sheetname):    data = record = []    # load excel file, read only mode    wb = load_workbook(filename, read_only=True)    # select sheet    sheet = wb[sheetname]    # write into data    for row in sheet.rows:        for cell in row:            record.append(cell.value)        data.append(record)        record = []    return data def write_data_list(data, filename, sheetname, no_header=False):    wb = Workbook()    sheet = wb.active    sheet.title = sheetname    # check header data    if no_header :        data.pop(0)    # insert data    for row in data:        sheet.append(row)    # save into file    wb.save(filename)data = get_data_list('excel/sample.xlsx','Sheet1')# print(type(data))write_data_list(data, 'data.xlsx', 'data')我運行此代碼并生成此錯誤消息:Traceback (most recent call last):  File "C:\Users\xxx\Projects\mergexl\rw.py", line 37, in <module>    write_data_list(data, 'data.xlsx', 'data')  File "C:\Users\xxx\Projects\mergexl\rw.py", line 31, in write_data_list    sheet.append(row)  File "C:\Users\xxx\.virtualenvs\mergexl-aotJkH4X\lib\site-packages\openpyxl\worksheet\worksheet.py", line 788, in append    self._invalid_row(iterable)  File "C:\Users\xxx\.virtualenvs\mergexl-aotJkH4X\lib\site-packages\openpyxl\worksheet\worksheet.py", line 872, in _invalid_row    type(iterable))TypeError: Value must be a list, tuple, range or generator, or a dict. Supplied value is <class 'str'>如您所見,此錯誤在第 33 行顯示了一個問題,即“sheet.append(row)”不斷詢問列表數(shù)據(jù)類型輸入。但是,變量數(shù)據(jù)已經(jīng)是一個列表。我已經(jīng)檢查了數(shù)據(jù)類型print(type(data))那么輸出是類“l(fā)ist”, 但錯誤消息一直告訴數(shù)據(jù)是類“str”有什么解決辦法嗎?
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

data = record = [] 沒有做你認為它做的事情。


它綁定data并record命名到同一個列表對象。


第一次下面的循環(huán)運行,data并且record是同一個列表,所有在cell.value第一行中被添加到列表之前record加入。


cell.value 不是列表類的實例。


for row in sheet.rows:

    for cell in row:

        record.append(cell.value)

    data.append(record)

    record = []

return data 

您需要將數(shù)據(jù)和記錄初始化為單獨的列表。


data = []


for row in sheet.rows:

    record = []

    for cell in row:

        record.append(cell.value)

    data.append(record)


return data 



查看完整回答
反對 回復(fù) 2021-09-14
  • 1 回答
  • 0 關(guān)注
  • 1273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號